千家信息网

怎么使用Python解决常见格式图像读取

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇"怎么使用Python解决常见格式图像读取"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看
千家信息网最后更新 2026年11月02日怎么使用Python解决常见格式图像读取

这篇"怎么使用Python解决常见格式图像读取"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"怎么使用Python解决常见格式图像读取"文章吧。

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

raw+mhd格式是常见的一种医学图像格式,每一个病人的数据包含一个mhd文件和一个同名的raw文件,mhd即meta header data,数据头部信息,而raw存储了像素信息。方法需要使用的SimpleITK库,我们需要在自己的Python环境中安装对应的库

pip install SimpleITK

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

具体代码如下:

import osimport SimpleITK as sitkimport matplotlib.pyplot as pltfrom natsort import natsortedfrom tqdm import tqdmimport cv2import numpy as npmhd_path = './xxx.mhd'  # mhd文件需和同名raw文件放在同一个文件夹data = sitk.ReadImage(mhd_path)  # 读取mhd文件# print(data)spacing = data.GetSpacing()  # 获得spacing大小img_data = sitk.GetArrayFromImage(data)  # 获得图像矩阵print(img_data.shape)# 图像数据转换为npy保存np.save('img_data.npy', np.array(img_data))# 将图像转为png格式保存for i in range(img_data.shape[0]):    cv2.imwrite('./{}.png'.format(i), img_data[i, :, :])

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

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

pip install SimpleITKpip install pydicom

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

import osimport SimpleITK as sitkimport matplotlib.pyplot as pltfrom natsort import natsortedfrom tqdm import tqdmimport cv2import pydicomimport numpy as np#调整图像窗宽窗位def window_transform(ct_array, window_width, window_center, normal=False):    min_window = float(window_center) - 0.5*float(window_width)    new_img = (ct_array - min_window) / float(window_width)    new_img[new_img < 0] = 0    new_img[new_img > 1] = 1    if not normal:        new_img = (new_img * 255).astype('uint8')    return new_imgimg_path = 'xx.dcm'#此时读取的是所有dicom图像信息image = pydicom.read_file(img_path)#获得图像矩阵image_data = image.pixel_array#获得dicom中的患者信息、图像信息等information['PatientID'] = image.PatientIDinformation['PatientName'] = image.PatientNameinformation['PatientBirthDate'] = image.PatientBirthDateinformation['PatientSex'] = image.PatientSexwindow_width = 1000window_center = 30image_data = window_transform(image_data, window_width, window_center, normal=False)cv2.imwrite('./img.png',image_data)

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

import osimport SimpleITK as sitkimport matplotlib.pyplot as pltfrom natsort import natsortedfrom tqdm import tqdmimport cv2import pydicomimport numpy as npimg_path = 'xx.dcm'#此时读取的是所有dicom图像信息image = sitk.ReadImage(img_path)# 转为值为0-255的灰度图rescalFilt = sitk.RescaleIntensityImageFilter()rescalFilt.SetOutputMaximum(255)rescalFilt.SetOutputMinimum(0)image = rescalFilt.Execute(image)image_data = sitk.GetArrayFromImage(image_data)image_data = np.squeeze(dicom_data)cv2.imwrite('./img.png',image_data)

3. nii格式医学图像转换

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

pip install nibabel

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

import os import numpy as np import nibabel as nibimport matplotlib.pyplot as pltfrom glob import globimg_path = './xxx.nii'image = nib.load(img_path)    image_data = image.dataobjfor i in range(0, dataobj.shape[2]):     cv2.imwrite('./{}.png'.format(i), img_data[i, :, :])

以上就是关于"怎么使用Python解决常见格式图像读取"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

图像 数据 格式 医学 信息 文件 标准 代码 内容 常见 大小 矩阵 存储 影像 方法 不同 像素 就是 患者 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 为想互联网科技怎么样 互联网科技工作委员会毛军 互联网科技公司税收优惠 北京互联网科技有限公司 深圳齐家互联网科技 天下捷融互联网科技 互联网科技宣传片 无锡溥仪互联网科技有限公司 西藏七维空间互联网科技有限公司 茂名市互联网科技产业园 湖北码尼互联网科技有限公司电话 允成互联网科技有限公司融资 滨湖区互联网智能科技产品有哪些 电子商务与互联网科技的关系 互联网科技包装股 互联网科技企业商标注意事项 互联网金融运营模式中的金融科技 广州三三互联网科技有限公司 互联网对科技影响 互联网科技公司排名 与互联网科技公司 互联网未来科技 互联网前沿科技 崇明区互联网教育科技诚信经营 互联网科技人工智能实验室 卓翼科技产业互联网合作 互联网科技职业技能培训学校 科技互联网公司两年变化 知域互联网科技有限公司官网
0