python对医学图像的基本处理_图像识别 | 使用Python对医学Dicom文件的预处理(含代码)...

前沿

在处理医学图像时,常常会遇到以Dicom格式保存的医学图像,如CT、MRI等。Dicom文件是需要专门的软件或者通过编程,应用相应的库进行处理。为了能够更好地服务下游任务,例如分割或检测腹腔CT图像中某个病灶组织,需要先将Dicom图像进行读取,脱敏,调窗等步骤,以便于后续的编辑。本文使用python对医学Dicom文件进行相应的处理,相比于封装好的软件,笔者认为自己动手的可操作性更强。

目录

1 导入相应的包

2 读取Dicom图像数据

3 设置CT图像的窗宽和窗位

4 获取Dicom图像的tag信息

5 结果保存及可视化

导入相应的包

# load necessary packages

import matplotlib.pyplot as plt

import pydicom.uid

import sys

from PyQt5 import QtGui

import os

import pydicom

import glob

from PIL import *

import matplotlib.pyplot as plt

from pylab import *

from tkinter.filedialog import *

import PIL.Image as Image

其核心是使用了python中的pydicom库来处理dicom文件。

读取Dicom图像数据

have_numpy = True

try:

import numpy

except ImportError:

have_numpy = False

raise

sys_is_little_endian = (sys.byteorder == 'little')

NumpySupportedTransferSyntaxes = [

pydicom.uid.ExplicitVRLittleEndian,

pydicom.uid.ImplicitVRLittleEndian,

pydicom.uid.DeflatedExplicitVRLittleEndian,

pydicom.uid.ExplicitVRBigEndian,

]

# 支持"传输"语法

def supports_transfer_syntax(dicom_dataset):

return (dicom_dataset.file_meta.TransferSyntaxUID in

NumpySupportedTransferSyntaxes)

def needs_to_convert_to_RGB(dicom_dataset):

return False

def should_change_PhotometricInterpretation_to_RGB(dicom_dataset):

return False

# 加载 Dicom图像

def get_pixeldata(dicom_dataset):

"""If NumPy is available, return an ndarray of the Pixel Data.

Raises

------

TypeError

If there is no Pixel Data or not a supported data type.

ImportError

If NumPy isn't found

NotImplementedError

if the transfer syntax is not supported

Att

你可能感兴趣的:(python对医学图像的基本处理_图像识别 | 使用Python对医学Dicom文件的预处理(含代码)...)