提取CT 图像的 3D mask 部分的最大层面

该代码示例展示了如何使用Python结合SimpleITK库,从CT图像的3Dmask中找出最大层面,并将这一层面转换为JPG格式进行保存。用户需替换指定的输入和输出文件夹路径。
部署运行你感兴趣的模型镜像

以下是可以用 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_foldermask_folder 更改为您自己的文件夹路径,其中包含 CT 图像和相应的 mask。最后,您需要将 save_folder 更改为您想要保存最大层面 JPG 文件的文件夹路径。

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值