Dicom转png,jpg等,可处理压缩图像

如下:

    file传入文件全路径

    注意:这个处理不了压缩图(维度较高的,如果需要通用化的请阅览到最后!!!!)

    10.24这个参数:转 1024*1024的图,也可以自定义

import pydicom
import matplotlib.pyplot as plt
from skimage import exposure,img_as_float

def dicom_2png(file):
    _currFile = file
    dcm = pydicom.dcmread(file)
    fileName = os.path.basename(file)
    imageX = dcm.pixel_array
    temp = imageX.copy()
    print("shape ----", imageX.shape)
    picMax = imageX.max()
    vmin = imageX.min()
    vmax = temp[temp < picMax].max()
    # print("vmin : ", vmin)
    # print("vmax : ", vmax)
    imageX[imageX > vmax] = 0
    imageX[imageX < vmin] = 0
    # result = exposure.is_low_contrast(imageX)
    # # print(result)
    image = img_as_float(imageX)
    plt.cla()
    plt.figure('adjust_gamma', figsize=(10.24, 10.24))
    plt.subplots_adjust(top=1, bottom=0, left=0, right=1, hspace=0, wspace=0)
    plt.imshow(image, 'gray')
    plt.axis('off')
    plt.savefig(fileName + '.png')
    time.sleep(1)

  PS:经过几个月研究,博主已处理好压缩的问题。

  原理是先将Dicom图压缩去掉,转通用图(主要是Dcm图显矩阵那块转换)

  转换后pydcm就可以读取 : imageX = dcm.pixel_array属性了

  不多说直接上地址,这个暂时未传至github,直接放我的码云了

  https://gitee.com/ocen/dcm_to_png

  主处理逻辑请读:AITBDCMService.py(被注释掉的是win服务注入不影响使用)

  依赖VC环境,请悉知,一般装到VS 2015或以上是没问题的

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值