pydicom数据的处理pydicom数据的处理pydicom数据的处理

读取Dicom文件后,可以借助Numpy以及图像处理库(如PIL.Image)来进行简单的处理

读取图像

folder_path = r"D:\project"
file_name = "IM62.dcm"
file_path = os.path.join(folder_path,file_name)
dcm = pydicom.dcmread(file_path)

获取像素矩阵

dcm = pydicom.dcmread(file_path)
img_arr = dcm.pixel_array
print(type(img_arr))

获取像素矩阵的shape

print("shape",img_arr.shape)

获取像素矩阵的dtype(uint16)

print("dtype",img_arr.dtype)

查看所有值

flatten_data = img_arr.flatten()
print("flatten_data", flatten_data)
print(len(flatten_data))
list_data = flatten_data.tolist()
print("list_data", list_data)
set_data = set(list_data)
print("set_a",set_data)

借助PIL.Image可以直接进行简单的图像处理

from PIL import Image
data_img = Image.fromarray(ds.pixel_array)
print(type(data_img))
print(data_img)

Image转ndarray,查看dtype

img_convert_ndarray = np.array(data_img)
print(img_convert_ndarray.dtype)

查看所有值(没有变化)

flatten_data = img_convert_ndarray.flatten()
print("flatten_data", flatten_data)
print(len(flatten_data))
list_data = flatten_data.tolist()
print("list_data", list_data)
set_data = set(list_data)
print("set_a",set_data)

借助PIL.Image选择45°,data_img_rotated的像素值不会受到影响

data_img.show()
data_img_rotated = data_img.rotate(angle=45)
data_img_rotated.show()

经过PIL.IMAGE处理后的dicom图像转为ndarray后,可以重新保存为dicom文件

data_rotated = np.array(data_img_rotated)
dcm.PixelData = data_rotated.tobytes()
dcm.Rows,dcm.Columns = data_rotated.shape
new_name = "dicom_rotated.dcm"
dcm.save_as(os.path.join(".",new_name))

dcm_rotated = pydicom.dcmread(os.path.join(".",new_name))
dicom_rotated_img = Image.fromarray(dcm_rotated.pixel_array)
dicom_rotated_img.show()

可视化

方式一(pyplot)

from matplotlib import pyplot
pyplot.imshow(ds.pixel_array,cmap=pyplot.cm.bone)
pyplot.show()

方式二(PIL.Image)

from PIL import Image
data_img = Image.fromarray(dcm.pixel_array)
data_img.show()

pydicom数据的处理相关推荐

  1. pydicom数据的读取

    pydicom数据的读取pydicom数据的读取pydicom数据的读取 读取dicom图像的两种方式 pydicom.read_file(file_path) pydicom.dcmread(fil ...

  2. C#基础教程-c#实例教程,适合初学者

    C#基础教程-c#实例教程,适合初学者. 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和W ...

  3. DICOM数据信息解析及Pydicom简单处理

    1.DICOM简介 DICOM(Digital Imaging and Communications in Medicine):医学影像成像和通讯标准. 所有患者的医学图像都以DICOM文件格式存储. ...

  4. pydicom图像数据的保存

    pydicom图像数据的保存pydicom图像数据的保存pydicom图像数据的保存 Dicom图像转RGB三通道图像 1.归一化 2.*255 3.复制三个三通道 ds.save_as(" ...

  5. python dicom图像分割_处理医疗影像的Python利器:PyDicom

    Pydicom是一个用于处理DICOM格式文件的Python包,可以处理包括如医学图像(CT等).报告等. Pydicom支持DICOM格式的读取:可以将dicom文件读入python结构,同时支持修 ...

  6. dicom多帧转换_Python解析多帧dicom数据详解

    概述 pydicom是一个常用python DICOM parser.但是,没有提供解析多帧图的示例.本文结合相关函数和DICOM知识做一个简单说明. DICOM多帧数据存储 DICOM标准中关于多帧 ...

  7. LUNA16_Challange数据预处理2

    ps 直接上好像有点困难,那么先整理下LUNA16_Challange中平安科技公司的技术说明中预处理部分(还是比较好理解,理解错误欢迎指正) Data Preprocessing At first, ...

  8. 将自己的dcm数据制作成LUNA16数据集提供数据样式之代码整理

    1.获取mhd和raw import cv2 import os import pydicom import numpy import SimpleITK# 路径和列表声明 rootpath=&quo ...

  9. 将自己的dcm数据制作成LUNA16数据集提供数据样式。

    1.先说下luna数据样式.一个CT序列在LUNA16数据集主要是由一个mhd文件一个raw文件以及一个或多个csv文件(以一个为例不做那么多区分(3mm以下不做处理等)).以下为LUNA16数据集的 ...

最新文章

  1. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource c
  2. php 数组转对象_[基础编程学习] [PHP7数组详解]:第1章 (8)数组和对象
  3. oracle 202,Oracle Certification 1Z0-202题库
  4. Android locksettings/gatekeeper代码导读
  5. SAP BOPF draft table automatic deletion
  6. mysql 存储过程中limit
  7. python下载文件损坏_pythonw.exe停止工作,无法运行IDLE或任何.py文件 - python
  8. 国产手机可以复制苹果的成功吗?
  9. PostgreSQL归档配置及自动清理归档日志
  10. java class object_[java]Class类和Object类的关系
  11. webpack中file-loader和url-loader的关系
  12. 三维计算机视觉(四)--关键点
  13. sql中exists,not exists的用法 1
  14. SPSS 24/25/26安装包分享 window和mac版本
  15. Web前端布局总体架构
  16. 阳光长跑(阳光体育服务平台)
  17. html <font>中英文常用字体和颜色总结
  18. 身份证号码正则表达式及校验方法
  19. Centos 8 安装 Openbravo 之安装 httpd mod_jk
  20. 键盘 - 键盘样式风格有关设置

热门文章

  1. java常用的爬虫框架
  2. C语言最难学的四大内容是什么?
  3. 360安全卫士的云查杀原理介绍[转]
  4. EasyNVR如何实现前端录像时间轴播放?
  5. 提取微信记录为csv文件或txt文件(免root,免安装java)
  6. windows使用laragon配置开发环境
  7. wps 模拟分析 规划求解_WPS表格怎么进行规划求解运算?
  8. 在docker中使用天兔
  9. 读者问答 | 学习C++能从事什么工作?
  10. 简述计算机地图制图的主要阶段,计算机地图制图原理、特点及发展趋势