DICOM图像读取
- 格式:pdf
- 大小:138.79 KB
- 文档页数:4


DICOM医学图像处理:DIMSE消息发送与接收“⼤同⼩异”之DCMTKfo-dicommDCM背景:从DICOM⽹络传输⼀⽂开始,相继介绍了C-ECHO、C-FIND、C-STORE、C-MOVE等DIMSE-C服务的简单实现,博⽂中的代码给出的实例都是基于fo-dicom库来实现的,原因只有⼀个:基于C#的fo-dicom库具有⾼封装性。
对于初学者来说实现⼤多数的DIMSE-C、DIMSE-N服务⼏乎都是“傻⽠式”操作——构造C-XXX-RQ、N-XXX-RQ然后绑定相应的OnResponseReceived处理函数即可。
本博⽂希望在前⼏篇预热的基础上,对⽐DCMTK、fo-dicom、mDCM三种库构建DIMSE消息的具体操作,来分析⼀下三者对于DIMSE消息的发送和接收的实现,为后续搭建简易版的Dicom Server服务器做准备。
DIMSE:DIMSE,是DICOM Message Service Element的简称。
DICOM3.0第7部分指出:DIMSE为对等DICOM应⽤实体进⾏医学影像及相关信息交换提供了⼀种应⽤服务元素定义(Application Service Element),包括服务和协议(DIMSE Service 和DIMSE Protocol)。
DIMSE Protocol:DIMSE基于DIMSE协议来提供服务,DIMSE协议规定了构造消息必需的编码规则。
⼀条DICOM MESSAGE由固定的指令集合(Command Set),外加可选择的数据集合(Data Set)构成,如下截图所⽰:DIMSE Services:DIMSE服务因操作SOP类型的不同分为DIMSE-C Services和DIMSE-N Services,DIMSE-C服务⽀持在对等DICOM实体间进⾏Composite SOP Instance操作,主要包括C-ECHO、C-FIND、C-STORE、C-MOVE、C-GET等;⽽DIMSE-N服务⽀持Normalized SOP Instance操作,主要包括N-EVENT-REPORT、N-GET、N-SET、N-CREATE、N-ACTION、N-DELETE。
学习使用医学影像软件DICOMViewer第一章:医学影像技术的发展和应用医学影像技术是现代医学中不可或缺的重要手段,它可以通过获取人体内部的图像信息,帮助医生进行诊断、治疗和手术规划等工作。
随着科技的不断发展,医学影像软件也得到了极大的改进和创新,其中一款重要的软件就是DICOMViewer。
第二章:DICOMViewer的介绍和功能DICOMViewer,全称Digital Imaging and Communications in Medicine Viewer,是一种专业的医学影像软件。
它采用DICOM标准格式,可以快速加载、显示和处理医学影像数据。
DICOMViewer具有多种功能,包括影像的浏览、窗宽窗位调整、多序列对比、测量分析、三维重建等。
通过这些功能,医生可以更方便地分析和解读医学影像。
第三章:DICOMViewer的使用技巧和操作方法DICOMViewer的使用方法并不复杂,但需要一些专业的技巧。
首先,用户需要打开软件,并加载DICOM格式的影像数据。
加载完成后,可以在软件界面上进行窗宽窗位的调整,以改变图像的对比度和亮度。
此外,用户还可以选择不同序列的影像进行对比,以帮助更全面地了解患者的病情。
另外,软件还提供了多种测量工具,如长度、面积、角度的测量,以及多个影像的叠加和三维重建。
用户可以根据需要选择合适的功能来处理影像。
第四章:DICOMViewer在临床应用中的价值DICOMViewer在临床应用中具有重要的价值。
首先,它可以帮助医生更直观地观察和分析患者的病情,准确判断疾病的位置和程度。
其次,DICOMViewer可以进行影像的测量和分析,提供客观的数据支持,辅助医生做出准确的诊断和治疗方案。
再次,DICOMViewer还可以进行三维重建,使医生可以更全面地了解患者的解剖结构,为手术规划提供帮助。
总之,DICOMViewer在临床应用中的价值不可低估。
第五章:DICOMViewer的发展趋势和挑战随着医学影像技术的不断发展,DICOMViewer也面临着一些发展趋势和挑战。
pydicom和SimpleITK分别解析医学影像中dicom⽂件⾸先,⽆论是pydicom还是SimpleITK都是需要事先导⼊到python中的库,如果使⽤的是pycharm IDE,可以先创建python3的虚拟环境,然后在虚拟环境下通过file-setting-Project interpreter ,在添加模块⾥⾯直接搜上述两个库的名称,点击安装即可。
pydicom提取单张dicom图像1import pydicom2from matplotlib import pyplot34 ds = pydicom.read_file('C:/Users/****/Desktop/CT000000.dcm')# DICOM⽂件的位置5print(ds.dir()) # 打印所有 DICOM TAG 名6print(ds.dir('Pixe')) # 打印包含 'pat' 的 DICOM TAG7print(ds.PatientName, ds.PatientSex, ds.PatientID, ds.PatientBirthDate, ds.PatientAge) # 打印 DICOM TAG 相应的属性值8print(ds.data_element('PatientName')) # 打印⼀个完整的数据元素,包括 DICOMTAG编码值(Group, Element), VR, Value9print(ds.data_element('PatientID').VR, ds.data_element('PatientID').value)10 pixel_bytes = ds.PixelData # 原始⼆进制⽂件1112 pix = ds.pixel_array # 像素值矩阵13print(pix.shape) # 打印矩阵维度14 pyplot.imshow(pix, cmap=pylab.cm.bone)15 pyplot.show() # cmap 表⽰ colormap,可以是设置成不同值获得不同显⽰效果,打印dicom图⽚注意,此时可能会报错,报错的地⽅是ds.pixel_array,原因是某些格式的dicom⽂件不能⽤pydicom提取,。