DICOM CT\MR片子免费在线查看工具;python pydicom包加载查看;mayavi 3d查看

avatar
作者
猴君
阅读量:0

DICOM CT\MR片子免费在线查看工具

参考:
https://zhuanlan.zhihu.com/p/668804209

dicom格式:

DICOM(Digital Imaging and Communications in Medicine)是医学数字成像和通信的标准。它定义了医学图像(如CT、MRI、X光等)的格式以及如何在不同的医疗设备之间传输这些图像。DICOM标准由美国放射学院(ACR)和国家电气制造商协会(NEMA)共同开发,旨在促进医学图像的互操作性和数据交换。  DICOM的主要特点 图像格式:DICOM定义了一种标准的图像文件格式,包含了图像数据以及相关的元数据(如患者信息、扫描参数等)。  通信协议:DICOM标准还包括了用于在医疗设备之间传输图像和相关数据的通信协议。  互操作性:DICOM确保了不同制造商的医疗设备能够相互通信和交换数据,从而提高了医疗图像的可用性和可访问性。  安全性:DICOM标准也考虑了数据的安全性,包括用户认证、数据加密和完整性检查等。 

在这里插入图片描述

片子下载的zip压缩包里面文件大概格式:
在这里插入图片描述

1)imaios

https://www.imaios.com/cn/imaios-dicom-viewer
在这里插入图片描述

2)小赛看看

https://xiaosaiviewer.com/
在这里插入图片描述

python pydicom加载查看

安装软件:

  pip install pydicom   ##图像压缩工具 pip install gdcm pip install pylibjpeg pylibjpeg-libjpeg pylibjpeg-openjpeg 
import pydicom import matplotlib.pyplot as plt import numpy as np   # 加载DICOM文件 dcm_file = pydicom.dcmread(r"C:\Users\loong\Downloads\***593708.311059.dcm")  # 获取像素数据 pixel_array = dcm_file.pixel_array  # 显示图像 plt.imshow(pixel_array, cmap=plt.cm.bone) plt.axis('off') plt.show()  # 打印一些DICOM标签信息 print(f"Patient's Name: {dcm_file.PatientName}") print(f"Modality: {dcm_file.Modality}") print(f"Study Date: {dcm_file.StudyDate}")  

在这里插入图片描述

其他方法:
SimpleITK

import SimpleITK as sitk import matplotlib.pyplot as plt  # 读取DICOM文件 reader = sitk.ImageSeriesReader() dicom_names = reader.GetGDCMSeriesFileNames("path/to/dicom/directory") reader.SetFileNames(dicom_names) image = reader.Execute()  # 转换为numpy数组 array = sitk.GetArrayFromImage(image)  # 显示中间切片 middle_slice = array[array.shape[0]//2] plt.imshow(middle_slice, cmap='gray') plt.axis('off') plt.show() 

mayavi 3d查看

pip install mayavi  configobj 
import pydicom import numpy as np from mayavi import mlab import os  # 读取DICOM系列 dicom_folder = r"C:\Users\loong\Downloads\unknown" slices = [pydicom.dcmread(os.path.join(dicom_folder, s)) for s in os.listdir(dicom_folder)] slices.sort(key = lambda x: float(x.ImagePositionPatient[2]))  # 创建3D numpy数组 img_shape = list(slices[0].pixel_array.shape) img_shape.append(len(slices)) img3d = np.zeros(img_shape)  for i, s in enumerate(slices):     img2d = s.pixel_array     img3d[:,:,i] = img2d  # 使用mayavi显示3D图像 mlab.contour3d(img3d, contours=10, transparent=True) mlab.show() 

在这里插入图片描述

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!