以下是可以用 Python 编写的代码,用于批量提取 CT 图像的 3D mask 部分的最大层面,并将其保存为 JPG 格式:
复制import os
import numpy as np
import cv2
import SimpleITK as sitk
def get_largest_slice(image):
"""
获取 3D 图像的最大层面
"""
largest_slice = None
largest_slice_area = 0
for z in range(image.shape[2]):
slice_area = cv2.countNonZero(image[:, :, z])
if slice_area > largest_slice_area:
largest_slice_area = slice_area
largest_slice = image[:, :, z]
return largest_slice
def save_largest_slice_as_jpg(image_path, mask_path, save_path):
"""
将最大层面保存为 JPG 格式
"""
image = sitk.ReadImage(image_path)
mask = sitk.ReadImage(mask_path)
image_array = sitk.GetArrayFromImage(image)
mask_array = sitk.GetArrayFromImage(mask)
largest_slice = get_largest_slice(mask_array)
largest_slice = cv2.cvtColor(largest_slice, cv2.COLOR_GRAY2BGR)
image_name = os.path.splitext(os.path.basename(image_path))[0]
save_name = os.path.join(save_path, f"{image_name}.jpg")
cv2.imwrite(save_name, largest_slice)
if __name__ == "__main__":
image_folder = "/path/to/image/folder"
mask_folder = "/path/to/mask/folder"
save_folder = "/path/to/save/folder"
for image_name in os.listdir(image_folder):
image_path = os.path.join(image_folder, image_name)
mask_name = f"{image_name.split('.')[0]}_mask.nii.gz"
mask_path = os.path.join(mask_folder, mask_name)
save_largest_slice_as_jpg(image_path, mask_path, save_folder)
请注意,这段代码需要使用 SimpleITK 库来读取 CT 图像和 mask,因此您需要先安装该库。此外,您需要将 image_folder 和 mask_folder 更改为您自己的文件夹路径,其中包含 CT 图像和相应的 mask。最后,您需要将 save_folder 更改为您想要保存最大层面 JPG 文件的文件夹路径。
该代码示例展示了如何使用Python结合SimpleITK库,从CT图像的3Dmask中找出最大层面,并将这一层面转换为JPG格式进行保存。用户需替换指定的输入和输出文件夹路径。
8995

被折叠的 条评论
为什么被折叠?



