最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 怎样用python加载dicom图片

    正文概述    2020-06-28   322

    用python加载dicom图片的方法:使用pydicom、CV2、numpy、matplotlib等库即可。pydicom库是专门用来处理dicom图像的python专用库。

    怎样用python加载dicom图片

    python读取DICOM图像,需要以下几个库:pydicom、CV2、numpy、matplotlib。pydicom是专门处理dicom图像的python专用包,numpy高效处理科学计算的包,依据数据绘图的库。

    (推荐教程:Python入门教程)

    安装需要的库

    pip install matplotlib
    pip install opencv-python
    pip install pydicom    
    pip install numpy

    安装好这些库后就可以对dicom文件操作了。

    具体代码如下:

    #-*-coding:utf-8-*-
    import cv2
    import numpy
    import dicom
    from matplotlib import pyplot as plt
    
    dcm = dicom.read_file("AT0001_100225002.DCM")
    dcm.image = dcm.pixel_array * dcm.RescaleSlope + dcm.RescaleIntercept
    
    slices = []
    slices.append(dcm)
    img = slices[ int(len(slices)/2) ].image.copy()
    ret,img = cv2.threshold(img, 90,3071, cv2.THRESH_BINARY)
    img = numpy.uint8(img)
    
    im2, contours, _ = cv2.findContours(img,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
    mask = numpy.zeros(img.shape, numpy.uint8)
    for contour in contours:
     cv2.fillPoly(mask, [contour], 255)
    img[(mask > 0)] = 255
    
    
    kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(2,2))
    img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
    
    
    img2 = slices[ int(len(slices)/2) ].image.copy()
    img2[(img == 0)] = -2000
    
    
    plt.figure(figsize=(12, 12))
    plt.subplot(131)
    plt.imshow(slices[int(len(slices) / 2)].image, 'gray')
    plt.title('Original')
    plt.subplot(132)
    plt.imshow(img, 'gray')
    plt.title('Mask')
    plt.subplot(133)
    plt.imshow(img2, 'gray')
    plt.title('Result')
    plt.show()

    在DICOM图像里,包含了患者的相关信息的字典,我们可以通过dir查看DICOM文件有什么信息,可以通过字典返回相关的值。

    import dicom
    import json
    def loadFileInformation(filename):
     information = {}
     ds = dicom.read_file(filename)
     information['PatientID'] = ds.PatientID
     information['PatientName'] = ds.PatientName
     information['PatientBirthDate'] = ds.PatientBirthDate
     information['PatientSex'] = ds.PatientSex
     information['StudyID'] = ds.StudyID
     information['StudyDate'] = ds.StudyDate
     information['StudyTime'] = ds.StudyTime
     information['InstitutionName'] = ds.InstitutionName
     information['Manufacturer'] = ds.Manufacturer
     print dir(ds)
     print type(information)
     return information
    
    a=loadFileInformation('AT0001_100225002.DCM')
    print a

    起源地下载网 » 怎样用python加载dicom图片

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元