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

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

参考:

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

dicom格式:

bash 复制代码
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加载查看

安装软件:

bash 复制代码
 pip install pydicom 
 ##图像压缩工具
pip install gdcm
pip install pylibjpeg pylibjpeg-libjpeg pylibjpeg-openjpeg
bash 复制代码
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

bash 复制代码
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查看

bash 复制代码
pip install mayavi  configobj
bash 复制代码
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()
相关推荐
有Li14 天前
来自骨关节炎计划的膝关节MR图像的自动异常感知3D骨骼和软骨分割|文献速递-基于生成模型的数据增强与疾病监测应用
3d·mr
EQ-雪梨蛋花汤19 天前
【MR开发】在Pico设备上接入MRTK3(三)——在Unity中运行MRTK示例
mr·pico
EQ-雪梨蛋花汤21 天前
【MR开发】在Pico设备上接入MRTK3(一)——在Unity工程中导入MRTK3依赖
mr·pico·移动端ar
Jiweilai122 天前
【报错处理】MR/Spark 使用 BulkLoad 方式传输到 HBase 发生报错: NullPointerException
spark·hbase·mr·bulkload
Chaihuo x.factory23 天前
创客项目秀|基于XIAO ESP32C3的本地个人助理Mr.M
mr
jn1001053724 天前
【图像处理】DR图像后处理中的窗宽和窗位的简要说明
图像处理·计算机视觉·ct
至善迎风1 个月前
VR、AR、MR、XR 领域最新科研资讯获取指南
ar·vr·mr
三菱-Liu2 个月前
三菱FX5U CPU 内置以太网功能
网络·驱动开发·硬件工程·制造·mr
YY-nb2 个月前
Unity Apple Vision Pro 开发(六):MR 物体交互
unity·apple vision pro·mr
知来者逆2 个月前
illusionX——一个从理解情感到改变学习、创新教育体验集成情感计算的混合现实系统
人工智能·深度学习·学习·llm·大语言模型·mr