pydicom数据的处理
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数据的处理相关推荐
- pydicom数据的读取
pydicom数据的读取pydicom数据的读取pydicom数据的读取 读取dicom图像的两种方式 pydicom.read_file(file_path) pydicom.dcmread(fil ...
- C#基础教程-c#实例教程,适合初学者
C#基础教程-c#实例教程,适合初学者. 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和W ...
- DICOM数据信息解析及Pydicom简单处理
1.DICOM简介 DICOM(Digital Imaging and Communications in Medicine):医学影像成像和通讯标准. 所有患者的医学图像都以DICOM文件格式存储. ...
- pydicom图像数据的保存
pydicom图像数据的保存pydicom图像数据的保存pydicom图像数据的保存 Dicom图像转RGB三通道图像 1.归一化 2.*255 3.复制三个三通道 ds.save_as(" ...
- python dicom图像分割_处理医疗影像的Python利器:PyDicom
Pydicom是一个用于处理DICOM格式文件的Python包,可以处理包括如医学图像(CT等).报告等. Pydicom支持DICOM格式的读取:可以将dicom文件读入python结构,同时支持修 ...
- dicom多帧转换_Python解析多帧dicom数据详解
概述 pydicom是一个常用python DICOM parser.但是,没有提供解析多帧图的示例.本文结合相关函数和DICOM知识做一个简单说明. DICOM多帧数据存储 DICOM标准中关于多帧 ...
- LUNA16_Challange数据预处理2
ps 直接上好像有点困难,那么先整理下LUNA16_Challange中平安科技公司的技术说明中预处理部分(还是比较好理解,理解错误欢迎指正) Data Preprocessing At first, ...
- 将自己的dcm数据制作成LUNA16数据集提供数据样式之代码整理
1.获取mhd和raw import cv2 import os import pydicom import numpy import SimpleITK# 路径和列表声明 rootpath=&quo ...
- 将自己的dcm数据制作成LUNA16数据集提供数据样式。
1.先说下luna数据样式.一个CT序列在LUNA16数据集主要是由一个mhd文件一个raw文件以及一个或多个csv文件(以一个为例不做那么多区分(3mm以下不做处理等)).以下为LUNA16数据集的 ...
最新文章
- Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource c
- php 数组转对象_[基础编程学习] [PHP7数组详解]:第1章 (8)数组和对象
- oracle 202,Oracle Certification 1Z0-202题库
- Android locksettings/gatekeeper代码导读
- SAP BOPF draft table automatic deletion
- mysql 存储过程中limit
- python下载文件损坏_pythonw.exe停止工作,无法运行IDLE或任何.py文件 - python
- 国产手机可以复制苹果的成功吗?
- PostgreSQL归档配置及自动清理归档日志
- java class object_[java]Class类和Object类的关系
- webpack中file-loader和url-loader的关系
- 三维计算机视觉(四)--关键点
- sql中exists,not exists的用法 1
- SPSS 24/25/26安装包分享 window和mac版本
- Web前端布局总体架构
- 阳光长跑(阳光体育服务平台)
- html <font>中英文常用字体和颜色总结
- 身份证号码正则表达式及校验方法
- Centos 8 安装 Openbravo 之安装 httpd mod_jk
- 键盘 - 键盘样式风格有关设置