返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么读取预处理DICOM文件
  • 161
分享到

Python怎么读取预处理DICOM文件

2023-07-05 19:07:37 161人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python怎么读取预处理DICOM文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么读取预处理DICOM文件”文章能帮助大家解决问题。需要的库●Simpleitk

这篇文章主要介绍“python怎么读取预处理DICOM文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么读取预处理DICOM文件”文章能帮助大家解决问题。

需要的库

●Simpleitk
安装命令:

conda install -c simpleitk simpleitk

使用:

import SimpleITK as sitk

pydicom(不推荐,可能有些文件打不开)
安装命令:

conda install -c conda-forge pydicom

●PIL
使用:

from PIL import Image

读取dicom

读取Series信息
由于患者可以同时做多个检查,所以dicom中可以包含多个study(多次检查,一般只有一个检查,所以不用管这个)和series(多个部位,一些信息也是用不同series保存),所以第一步就是要读取series信息。

Python怎么读取预处理DICOM文件

代码:

reader = sitk.ImageSeriesReader()ids = reader.GetGDCMSeriesIDs(dict_name)

ids里包含了所有series的id,dict_name为dicom文件所在目录路径
读取Series中所有图片
利用上面读取的series的id可以分开读取不同series。
代码:

for i in ids:    series_file_name = reader.GetGDCMSeriesFileNames(dict_name, i)

series_file_name中包含某个series所有图片的路径,一般我们只需要图片数量最多的那个series。ids为series的id列表,dict_name为dicom文件所在目录路径。

(重点)读取meta data(元数据)
dicom文件包含大量的元数据,会指出与该次检查的相关信息,常用的有 Slice thickness(层厚), Pixel spacing(像素间距)可以根据需要读取相应的元数据。
代码:

file_reader = sitk.ImageFileReader()file_reader.SetFileName(series_file_name[0])file_reader.ReadImageInfORMation()study_id = file_reader.GetMetaData("0008|1030")series_file_name[0]

可以为任意dicom文件的路径,“0008|1030"为元数据的tags

转换为图片并保存
代码:

image = sitk.ReadImage(series_file_name[0])image_data = sitk.GetArrayFromImage(image)[0]image_data = normalization(image_data)Image.fromarray(image_data).convert("RGB").save(image_save_path)

series_file_name[0]可以为任意dicom文件的路径,使用simpleitk读取的数据已经进利用斜率和截距进行了线性变换无需二次处理。image_save_path为保存的路径,注意路径要包含文件名(例:‘./1.png’),这里的要重点关注normalization函数,该函数涉及窗口技术。

(重点)窗口技术
由于dicom存储的是CT值矩阵,由于各种组织结构或病变具有不同的CT值,因此欲显示某一组织结构细节时,应选择适合观察该组织或病变的窗宽和窗位,以获得最佳显示,这里需要利用窗口技术进行转换。窗口技术涉及两个关键参数,窗位与窗宽。
窗宽(WW):是CT图像上显示的CT值范围,在此CT值范围内的组织和病变均以不同的灰度显示,而CT值高于此范围的组织和病变,均以白影显示,不再有灰度差异;反之,低于此范围的组织结构,均以黑影显示,也无灰度差别。
窗位(WL):是窗的中心位置。
公式:

WW=CTmax-CTminWL=(CTmax+CTmin)/2CTmax = WW/2+WLCTmin = WL-WW/2

转换后的图片灰度值=(CT值-CTmin) / (CTmax - CTmin) * 255
代码:

def normalization(data, window_level=-600., window_width=2000.):high = window_level + window_width / 2low = window_level - window_width / 2data = (data - low) / window_width * 255data[data > 255] = 255data[data < 0] = 0return data

window_level和window_width根据实际需要设定,data为simpleitk读取的数据

关于“Python怎么读取预处理DICOM文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Python怎么读取预处理DICOM文件

本文链接: https://lsjlt.com/news/354776.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python怎么读取预处理DICOM文件
    这篇文章主要介绍“Python怎么读取预处理DICOM文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么读取预处理DICOM文件”文章能帮助大家解决问题。需要的库●Simpleitk...
    99+
    2023-07-05
  • Python读取预处理DICOM文件方式详解
    目录需要的库读取dicom需要的库 ●Simpleitk安装命令: conda install -c simpleitk simpleitk 使用: import SimpleITK...
    99+
    2023-05-13
    Python读取DICOM文件 预处理DICOM文件
  • java读取大文件文本怎么处理
    处理大文件文本可以使用Java中的流式处理,以避免一次性将整个文件加载到内存中。以下是一个示例代码,使用BufferedReader...
    99+
    2023-09-20
    java
  • python怎么读取bin文件
    使用python读取bin文件的方法:1.新建python项目;2.导入os模块;3.使用open()函数打开bin文件;4.使用read()方法读取文件;具体步骤如下:首先,打开python,并新建一个python项目;python项目创...
    99+
    2024-04-02
  • python怎么读取json文件
    python读取json文件的方法:在python中可以使用load()函数来读取json文件,语法格式为:“json.load(参数路径)”。具体操作方法:首先需要在python脚本中导入json模块。import json使用load(...
    99+
    2024-04-02
  • python怎么读取sql文件
    使用python读取sql文件内容的方法:1.新建python项目;2.导入dxfgrabber模块;3.定义文件夹路径和文件名;4.使用open()函数获取文件内容;具体步骤如下:首先,打开python,并新建一个python项目;pyt...
    99+
    2024-04-02
  • python怎么读取yaml文件
    在Python中,可以使用`yaml`库来读取YAML文件。首先,需要通过`pip`安装`pyyaml`库,可以使用以下命令进行安装...
    99+
    2023-09-25
    python
  • python怎么读取TXT文件
    Python提供了多种读取文本文件的方法,以下是其中几种常用的方法:1. 使用`open()`函数:```file = open('...
    99+
    2023-10-11
    python
  • python怎么读取mpp文件
    Python中可以使用第三方库pywin32来读取.mpp文件。首先,确保已经安装了pywin32库,可以使用pip命令进行安装:p...
    99+
    2023-10-20
    python
  • python怎么读取文件名
    本篇内容主要讲解“python怎么读取文件名”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么读取文件名”吧!本文教程操作环境:windows7系统、Python 3.9.1,DEL...
    99+
    2023-06-30
  • python怎么读取大文件
    这篇文章主要介绍“python怎么读取大文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么读取大文件”文章能帮助大家解决问题。可以通过两种方法利用python读取大文件:第一种是利用...
    99+
    2023-06-30
  • python怎么读取mat文件
    Python中可以使用SciPy库中的io模块来读取.mat文件。 首先,需要安装SciPy库。可以使用以下命令来安装: pip i...
    99+
    2023-10-27
    python
  • python怎么读取csv文件
    在Python中,可以使用csv模块来读取CSV文件。下面是读取CSV文件的基本步骤: 导入csv模块:import csv 打开...
    99+
    2024-02-29
    python
  • python怎么读取py文件
    读取方法:使用with关键字打开example.py文件,并读取文件内容。读取完成后,我们将文件内容存储在变量content中,并将其打印出来。 在Python中,要读取一个.py文件...
    99+
    2024-04-02
  • python怎么读取pkl文件
    在 python 中使用 pickle 模块的 load() 函数可以读取 pkl 文件,步骤如下:导入 pickle 模块。以只读模式打开 pkl 文件,并将其分配给一个文件对象。使用...
    99+
    2024-04-02
  • python怎么读取视频文件
    在python中使用cv2库读取视频文件的方法:1.新建python项目;2.导入cv2库;3.使用VideoCapture()函数获取视频路径;4.使用read()函数读取视频;具体步骤如下:首先,打开python,并新建一个python...
    99+
    2024-04-02
  • python怎么读取数据文件
    使用python读取文件数据的方法:1.新建python项目;2.导入pandas模块;3.使用pd.read方法读取文件数据;具体步骤如下:首先,打开python,并新建一个python项目;python项目创建好后,在项目中使用impo...
    99+
    2024-04-02
  • 怎么中python读取大文件
    本篇文章为大家展示了怎么中python读取大文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞...
    99+
    2023-06-14
  • 怎么用Python读取CSV文件
    这篇文章主要介绍了怎么用Python读取CSV文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。典型的数据集stocks.csv:一个股票的数据集,其实就是常见的表格数据。有...
    99+
    2023-06-25
  • python怎么读取文件内容
    Python中可以使用`open()`函数来读取文件内容。`open()`函数需要传入文件的路径和打开方式作为参数。以下是一个示例,...
    99+
    2023-09-05
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作