环境安装依赖
pip install numpy Pillow SimpleITK
import os
import sys
import numpy as np
from PIL import Image
import SimpleITK as sitk
def convert_images(input_dir, output_dir):
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename in os.listdir(input_dir):
if filename.endswith(".png"):
input_path = os.path.join(input_dir, filename)
output_path = os.path.join(output_dir, os.path.splitext(filename)[0] + ".mha")
# 使用Pillow库读取PNG图像
img = Image.open(input_path)
# 将图像转换为NumPy数组
img_array = np.array(img)
# 将NumPy数组转换为SimpleITK图像
sitk_image = sitk.GetImageFromArray(img_array)
# 保存MHA格式的图像
sitk.WriteImage(sitk_image, output_path)
print(f"Converted {input_path} to {output_path}")
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: python png_to_mha.py <input_directory> <output_directory>")
sys.exit(1)
input_dir = sys.argv[1]
output_dir = sys.argv[2]
convert_images(input_dir, output_dir)
启动指令
将上述代码保存至png_to_mha.py,下面的代码将读取/input/images下的png图片,转换成mha并输出到/output/images目录
python png_to_mha.py /input/images /output/images
注意事项
仅针对二维png转mha