python读取图像的几种方法,python读取显示图片

  python读取图像的几种方法,python读取显示图片

  这篇文章主要介绍了使用计算机编程语言解决常见格式图像读取nii,dicom,mhd,下文具体操作过程需要的小伙伴可以参考一下

  

目录
1.原始,磁流体动力学格式医学图像数据转换2.医学数字影像和通讯格式医学图像数据转换3.国家信息基础设施格式医学图像转换

  

1. raw,mhd 格式医学图像数据转换

  原始磁流体动力学格式是常见的一种医学图像格式,每一个病人的数据包含一个磁铃力学文件和一个同名的生的文件,mhd即元数据头数据,数据头部信息,而生的存储了像素信息。方法需要使用的SimpleITK库,我们需要在自己的计算机编程语言环境中安装对应的库

  点安装SimpleITK

  mhd raw的数据往往是三维体数据,我们可以从磁铃力学文件中读取数据的具体信息如图像大小、切片大小、像素大小等信息。使用sitk.ReadImage()即可读取图像,使用sitk.GetArrayFromImage()可获取图像矩阵。

  具体代码如下:

  导入操作系统

  将SimpleITK作为锡克导入

  将matplotlib.pyplot作为血小板计数导入

  从自然排序导入自然排序

  从管理导入管理

  导入cv2

  将数组作为铭牌导入

  mhd_path= ./xxx.mhd # mhd文件需和同名生的文件放在同一个文件夹

  数据=sitk .ReadImage(mhd_path) #读取磁铃力学文件

  #打印(数据)

  间距=数据GetSpacing() #获得间隔大小

  img_data=sitk .GetArrayFromImage(data) #获得图像矩阵

  打印(img_data.shape)

  # 图像数据转换为神经肽y保存

  np.save(img_data.npy ,np.array(img_data))

  # 将图像转为png格式保存

  对于范围(img_data.shape[0]):内的我

  cv2.imwrite(./{}.巴布亚新几内亚。格式(I),img_data[i,])

  

2. dicom格式医学图像数据转换

  DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052标准).医学数字影像和通讯被广泛应用于放射医疗,心血管成像以及放射诊疗诊断设备(十射线,CT,核磁共振,超声等),并且在眼科和牙科等其它医学领域得到越来越深入广泛的应用。所有患者的医学图像都以医学数字影像和通讯文件格式进行存储。使用计算机编程语言读取医学数字影像和通讯图像可以使用pydicom库和SimpleITK库来完成。由于在医学图像处理领域中,对不同的图像需要使用不同的窗宽窗位导出图像,在下面代码中,我增加了对应的代码。

  点安装SimpleITK

  点安装pydicom

  使用pydicom方法具体代码如下:

  导入操作系统

  将SimpleITK作为锡克导入

  将matplotlib.pyplot作为血小板计数导入

  从自然排序导入自然排序

  从管理导入管理

  导入cv2

  导入pydicom

  将数组作为铭牌导入

  #调整图像窗宽窗位

  def window_transform(ct_array,window_width,window_center,normal=False):

  最小窗口=浮动(窗口中心)-0.5 *浮动(窗口宽度)

  new _ img=(CT _ array-min _ window)/float(window _ width)

  new_img[new_img 0]=0

  new_img[new_img 1]=1

  如果不正常:

  new_img=(new_img * 255).astype(uint8 )

  return new_img

  img_path=xx.dcm

  #此时读取的是所有医学数字影像和通讯图像信息

  image=py DICOM。读取文件(img路径)

  #获得图像矩阵

  图像数据=图像。像素阵列

  #获得医学数字影像和通讯中的患者信息、图像信息等

  信息[患者ID]=图像100 . patient id

  信息[患者姓名]=图像。患者姓名

  信息[病人出生日期]=图像。病人出生日期

  信息[PatientSex]=图像。耐心性爱

  窗口宽度=1000

  窗口中心=30

  image _ data=window _ transform(图像_数据,窗口_宽度,窗口_中心,法线=假)

  cv2.imwrite(./img.png ,image_data)

  使用SimpleITK方法具体代码如下:

  导入操作系统

  将SimpleITK作为锡克导入

  将matplotlib.pyplot作为血小板计数导入

  从自然排序导入自然排序

  从管理导入管理

  导入cv2

  导入pydicom

  将数组作为铭牌导入

  img_path=xx.dcm

  #此时读取的是所有医学数字影像和通讯图像信息

  image=sitk .ReadImage(img_path)

  # 转为值为0-255的灰度图

  rescalFilt=sitk .RescaleIntensityImageFilter()

  重新校准.SetOutputMaximum(255)

  重新校准.SetOutputMinimum(0)

  image=rescalFilt .执行(图像)

  image_data=sitk .GetArrayFromImage(image_data)

  图像_数据=NP。挤压(DICOM _ data)

  cv2.imwrite(./img.png ,image_data)

  

3. nii格式医学图像转换

  DICOM标准用于早期的医学成像。基本上所有厂商都会使用符合DICOM标准的产品,但是这个标准不方便数据分析。神经影像出现的时候,诞生了各种数据存储标准,比如analyze。后来为了方便学术交流,NIH带着其他机构的专家成立了工作组,制定了新的神经影像数据存储标准,称为NIFTI。需要安装nibabel库来读取带有nii后缀的NIFTI格式图像。

  pip安装标签

  您可以使用nib.load()函数读取图像数据data,其中dataobj是图像矩阵。

  导入操作系统

  将numpy作为np导入

  将笔尖导入为笔尖

  将matplotlib.pyplot作为plt导入

  从全球导入全球

  img_path=。/xxx.nii

  image=nib.load(img_path)

  image_data=image.dataobj

  对于范围(0,dataobj.shape[2]):中的I

  cv2.imwrite(。/{}.巴布亚新几内亚。格式(I),img_data[i,])

  这就是这篇关于使用Python阅读常见格式的nii、dicom、mhd MHD图像的文章。关于阅读Python图像的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: