.IMA格式CT数据转成普通的.png或.jpg

在找医学图像去噪数据集的时候,发现2016 0mayo clinic 的数据格式是.IMA,我现在像把这些.IMA格式的数据都转成为常见的.png格式或者.jpg格式的图。方法如下:

因为这些数据都是以病例形式存在的,如下图,L067、L096...、L506代表10个病例,每个病例里有若干.IMA文件。

现在我要把每个文件夹里的.IMA转成png形式的图片,同时将原来的.IMA文件简单命名为0.png、1.png.....

代码如下:

import pydicom
import numpy as np
import os
import cv2

#下面getCtHU()是将.IMA文件转成HU形式
def getCtHU(dicm):
    '''直接传入dicm文件/IMA文件'''
    img = np.array(dicm.pixel_array).astype('int32')
    img[img == -2000.0] = 0
    Hu = np.array(img).astype('float64')
    RescaleIntercept = dicm.RescaleIntercept
    RescaleSlope = dicm.RescaleSlope
    if RescaleSlope != 1:
        Hu = Hu * RescaleSlope
    Hu += RescaleIntercept
    return Hu

#下面的windowsLevelTransform()是将上面的HU转为numpy形式
def windowsLevelTransform(Hu, window, level):
    img = Hu
    min = level - float(window) * 0.5;
    max = level + float(window) * 0.5;#这个是CT窗口设置,相关问题百度或评论。下面调用这个函数时候,我拟定拟定窗口[-160,240]
    img[img < min] = min
    img[img > max] = max
    norm_ = (img - min) / window
    norm_.astype('float32')
    return norm_


root = r'C:\Users\Gecaicheng\Desktop\去噪模型代码\full_3mm_sharp\L506\full_3mm_sharp' #这是每个病例的路径
savepath = r'C:\Users\Gecaicheng\Desktop\new CT\L506' #之后保存图片的路径

#下面遍历每个切片
i=0
for filename in os.listdir(root):
    img = pydicom.read_file(os.path.join (root,filename)) #.IMA文件
    img_hu = getCtHU(img) #由.IMA文件转换成HU形式的
    img_np = windowsLevelTransform(Hu=img_hu, window=400, level=40) #再由HU形式的转成.numpy形式的
    cv2.imwrite(savepath+'\%d.png'%i, img_np*255) #注意这里img_np要乘上255即img_np*255,不然保存起来的图片看起来不爽,一片黑

上述代码是以L506病例为例,转换前后结果如下:

转换前

转换后

就这样,手动更改代码中的病例名称,挨个转变每个病例

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Caicheng-Ge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值