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()
相关推荐
Mysticbinary8 天前
透明证书机制——安全审计
ct·证书透明方案
画中影24 天前
PICO4 Ultra MR开发 空间网格扫描 模型导出及预览
unity·教程·mr·模型保存·pico4ultra·空间网格
matlabgoodboy1 个月前
生信分析服务MR孟德尔随机化单细胞测序转录组数据分析网络药理学
数据挖掘·数据分析·mr
atwdy2 个月前
【hadoop】hadoop streaming
大数据·hadoop·mr·streaming
Unity大海2 个月前
诠视科技MR眼镜如何使用VLC 进行RTSP投屏到电脑
科技·mr
Unity大海2 个月前
诠视科技MR眼镜如何安装apk应用
科技·mr
YY-nb2 个月前
基于 Quest 摄像头数据开发的原理介绍【Unity Meta Quest MR 开发教程】
unity·游戏引擎·mr
小杨小杨12 个月前
Lifespan Brain MR 图像分割的知识引导式提示学习
学习·mr
岱宗夫up2 个月前
探秘虚拟与现实的融合:VR、AR、MR 技术的变革力量
ar·vr·mr
罗小罗同学3 个月前
国自然面上项目|基于多模态MR影像的胶质母细胞瘤高危区域定位及预后预测研究|基金申请·25-02-28
人工智能·深度学习·mr·影像组学·医学人工智能