打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【医学图像处理】之图像读取、存储、转换(SimpleITK)_一只稚嫩的小金毛的博客-CSDN博客

SimpleITK中的图像概念与计算机视觉中的图像差异是非常大的,计算机视觉中的图像只是简简单单的多维矩阵,而SimpleITK中的图像是表示一种真实的物理实体,图像中的每一个像素都表示了是真实物理空间中的一个点,不仅仅有像素值,还有着坐标,间距,方向等概念。
Size:图像在各维度的像素个数
Spacing:图像各维度上像素之间的物理距离(单位一般为mm)
Physical extent:图像在物理空间中的大小,其数值等于Size*Spacing。Origin:图像原点的物理坐标(单位一般为mm,与Spacing保持一致)
Direction:采用方向余弦矩阵,这里是指图像本身坐标系相对于世界坐标系(固定不动的)的角度余弦。

1.加载SimpleITK包

import SimpleITK as sitk

2.读取Dicom序列文件

# read dicom series imagedicom_input_dir = "你的目录路径"print("Reading Dicom directory:", dicom_input_dir)reader = sitk.ImageSeriesReader()dicom_names = reader.GetGDCMSeriesFileNames(dicom_input_dir)reader.SetFileNames(dicom_names)image = reader.Execute()123456

3.读取非Dicom格式文件

# read imageimage = sitk.ReadImage("xxxxx.mha")1

4.获取图像参数信息

# show dicom series image messagesize = image.GetSize()print("Image size:", size)spacing = image.GetSpacing()print("Image spacing:", spacing)direction = image.GetDirection()print("Image direction:", direction)origin = image.GetOrigin()print("Image origin:", origin)12345678

5.存储非dicom格式文件

# write dicom imagesitk.WriteImage(image, "xxxxx.mha")1

6.SimpleITK图像数据转成Numpy矩阵数据

# sitk图像顺序是x,y,z三个方向的大小,numpy矩阵的顺序是z,y,x三个方向的大小,要注意索引位置# sitk image to numpy datanp_array = sitk.GetArrayFromImage(image)print("np_array size:", np_array.shape)123

7.Numpy矩阵数据转成SimpleITK图像数据

# numpy data to sitk imagesitk_image = sitk.GetImageFromArray(np_array)sitk_image.SetOrigin(origin)sitk_image.SetSpacing(spacing)sitk_image.SetDirection(direction)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
如何应用Python处理医学影像学中的DICOM信息
基于OpenCV的图像翻转和镜像
使用 OpenCV 将卷积实现为图像过滤器
10大最佳Python图像处理开源库
常用的十大python图像处理工具
技能 | Python处理图像10大经典库(附下载地址)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服