Python dcm转jpg与jpg转dcm

DCM文件是一种医学影像文件,除了文件信息,还包含影像数据,即图像信息,只要能够提取到这个图像信息,就可以将其转换为如JPG等图片格式。
在医学影像处理中,常用到MASK掩膜,即勾画病灶区域,以进行病理分析预测,将DCM文件转换为JPG格式后,就可以利用OpenCV2等进行病灶勾画。

将DCM转JPG需用到pydicom库,若未安装,可使用控制台输入pip install pydicom进行安装
DCM转JPG可参考这位博主的博客:用python将.dcm格式图像转为.jpg格式
完整代码如下

import pydicom
import scipy.misc
import os
import imageio
import shutil

di=r"C:\Users\Miao\Desktop\Sample\01\T1\\DICOM\\"
#↑↑↑↑  01号病人的T1类型的DCM数据所在文件夹  ↑↑↑↑
d=r"C:\Users\Miao\Desktop\Sample\01"
#↑↑↑↑  01号病人文件夹  ↑↑↑↑

def DCMtoJPG(file_path):
	global di
	global d
    c = []#医学影像常使用:多个患者→多种区域或时期DCM数据→多个DCM数据
    #的文件夹存储格式,所以使用c存储多个DCM数据,一次性转换所有DCM文件
    names = os.listdir(file_path)#file_path为患者数据所在文件夹
    for name in names:
        index = name.rfind('.')
        name = name[:index]
        c.append(name)

    for files in c:
        DCMpath = d+'\T1\DICOM\\'+files+".dcm" #DCM所在文件夹
        JPGpath = d+"\T1jpg\\"+files+".jpg" #将JPG保存到此文件夹
        data = pydicom.read_file(DCMpath)  #使用pydicom读取DCM文件
        img = data.pixel_array  #使用pydicom读取图像数据
        imageio.imsave(JPGpath,img)  #保存JPG图像到out_path

原理上讲 此行代码.jpg改为.png等则可以保存为其他图像格式

JPGpath = d+"\T1jpg\\"+files+".jpg" #将JPG保存到此文件夹
PNGpath = d+"\T1jpg\\"+files+".png" #将PNG保存到此文件夹

当然JPG也可以转换为DCM,只是需要一个DCM文件
因为机器一般会直接输出DCM文件,为了方便处理(比如勾画MASK掩膜)我们才会将其转换为JPG然后再转换为DCM,所以我们一般会有原DCM文件,只要我们将原DCM文件里存储图像的数据部分修改为新的JPG图像数据再保存即可将JPG转换为DCM文件
可参考这位博主的博客:Python JPG图片转DCM
原博客未说清为何还需要一个DCM文件才能把JPG转为DCM 在此做了一些解释
代码如下(需要下载opencv2):

import pydicom
import numpy as np
import os
from pydicom.uid import ExplicitVRLittleEndian
import cv2
import imageio
from matplotlib import pylab as plt

img = cv2.imread(r"C:\Users\Miao\Desktop\Sample\01\T1jpg\IMG-0003-00001.jpg")
#↑↑↑↑↑↑读取JPG文件↑↑↑↑↑↑
img_arr16 = np.array(img, dtype=np.uint16)  
img_arr16 = img_arr16.astype('int16')
data_changed = img_arr16[:, :, 0]  #灰度图像三通道数据相同读取一个通道即可
pd = data_changed.tobytes()  
dcm = pydicom.dcmread("001.dcm")  #需要一个已有的DCM文件 最好是转为JPG的原DCM文件
dcm.PixelData = pd  #将这个DCM文件的图像像素信息修改为JPG文件的数据
dcm.save_as("002.dcm")  #保存为新的DCM文件

软件介绍: DcmTransform是一款专用的医学格式转换器,于对符合DICOM 3.0标准的医学图像文件。软件首先对DICOM文件中的数据进行解析,并将其以图像的样式显示。图像显示后,用户可以自定义地调节医学图像的窗位窗宽。由于医学图像数据的像素变化范围通常为0-4095或0-1023,不同于传统图像文件的0-255。而计算机所能显示的黑白像素范围是0-255,所以需要对医学图像进行像素值的映射处理,即调节医学图像的窗位窗宽。调节操作的作用在于改变显示图像的明暗度对比度。当用户调节好医学图像的窗位窗宽后,即可以对医学图像文件进行格式化。化的文件格式可设为BMP格式和JPG格式。用户亦可以根据自己的需要设置化图像的属性信息,如图像的质量,大小。对于CT,MRI断层图像来说,通常拍摄得到的是一系列DICOM文件,该系列文件通常在同一个文件夹目录下。对于某一系列文件,由于拍摄中设备参数设置不变,其像素的变化范围,图像的明暗度饱和度基本相同,所以在图像化操作中,用户可以调节好窗位窗宽后,一次性的将系列文件全部化。对于DSA血管减影造影图像,也是需要拍摄一系列的图像,该系列图像通常保存在同一DICOM文件中。它借助计算机对血管造影图像进行数字图像处理,以消除背景的干扰,突出医生感兴趣的血管部分的信息。医学关心的并不是原始拍摄的图像信息,而是减影成像后的图像。所以本软件即可以将原始图像数据化成普通图像文件,也可以化减影成像后的图像。DICOM文件是按照DICOM标准存储的医学文件,它不仅可以用来封装各种医学图像,也可以封装其它医学信息,如病人姓名,性别,拍摄单位、设备参数等。这类资料保存在DICOM文件文件头中,DICOM文件头包含了标识数据集合的相关信息。DICOM文件一般由1个DICOM文件头和1个DICOM数据集合组成。在对DICOM文件处理过程序中,亦需要对其文件头进行解析,得到图像的相关信息。本软件可以将解析后的文件头保存为TXT文本文件,以便于查看。本软件还为用户提供了普通图像文件浏览的功能,以便于用户化完DICOM文件后,查看化效果。图像浏览时,先列出所有化后图像的缩略图,用户点击任意一幅缩略图即可打开该图像。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值