pydicom读取头文件_.dcm格式文件软件读取及python处理详解
要处理一些.dcm格式的焊接缺陷图像,需要读取和显示.dcm格式的图像。通过搜集资料收集到一些医学影像,并通过pydicom模块查看.dcm格式文件。
若要查看dcm格式文件,可下echo viewer 进行查看。
若用过pycharm进行处理,可选用如下的代码:
# -*-coding:utf-8-*-
import cv2
import numpy
import dicom
from matplotlib import pyplot as plt
dcm = dicom.read_file("dcm")
dcm.image = dcm.pixel_array * dcm.rescaleslope + dcm.rescaleintercept
slices = []
slices.append(dcm)
img = slices[int(len(slices) / 2)].image.copy()
ret, img = cv2.threshold(img, 90, 3071, cv2.thresh_binary)
img = numpy.uint8(img)
im2, contours, _ = cv2.findcontours(img, cv2.retr_list, cv2.chain_approx_simple)
mask = numpy.zeros(img.shape, numpy.uint8)
for contour in contours:
cv2.fillpoly(mask, [contour], 255)
img[(mask > 0)] = 255
kernel = cv2.getstructuringelement(cv2.morph_ellipse, (2, 2))
img = cv2.morphologyex(img, cv2.morph_open, kernel)
img2 = slices[int(len(slices) / 2)].image.copy()
img2[(img == 0)] = -2000
plt.figure(figsize=(12, 12))
plt.subplot(131)
plt.imshow(slices[int(len(slices) / 2)].image, 'gray')
plt.title('original')
plt.subplot(132)
plt.imshow(img, 'gray')
plt.title('mask')
plt.subplot(133)
plt.imshow(img2, 'gray')
plt.title('result')
plt.show()
也可用如下代码:
import pydicom
import os
import numpy
from matplotlib import pyplot, cm
# 用lstfilesdcm作为存放dicom files的列表
pathdicom = "dicom/2" #与python文件同一个目录下的文件夹
lstfilesdcm = []
for dirname,subdirlist,filelist in os.walk(pathdicom):
for filename in filelist:
if ".dcm" in filename.lower(): #判断文件是否为dicom文件
print(filename)
lstfilesdcm.append(os.path.join(dirname,filename)) # 加入到列表中
## 将第一张图片作为参考图
refds = pydicom.read_file(lstfilesdcm[0]) #读取第一张dicom图片
# 建立三维数组
constpixeldims = (int(refds.rows),int(refds.columns),len(lstfilesdcm)) # 得到spacing值 (mm为单位)
constpixelspacing = (float(refds.pixelspacing[0]), float(refds.pixelspacing[1]), float(refds.slicethickness))
# 三维数据
x = numpy.arange(0.0, (constpixeldims[0]+1)*constpixelspacing[0], constpixelspacing[0]) # 0到(第一个维数加一*像素间的间隔),步长为constpixelspacing
y = numpy.arange(0.0, (constpixeldims[1]+1)*constpixelspacing[1], constpixelspacing[1]) #
z = numpy.arange(0.0, (constpixeldims[2]+1)*constpixelspacing[2], constpixelspacing[2]) #
arraydicom = numpy.zeros(constpixeldims, dtype=refds.pixel_array.dtype)
for filenamedcm in lstfilesdcm:
ds = pydicom.read_file(filenamedcm)
arraydicom[:, :, lstfilesdcm.index(filenamedcm)] = ds.pixel_array # 轴状面显示
pyplot.figure(dpi=300)
pyplot.axes().set_aspect('equal', 'datalim')
pyplot.set_cmap(pyplot.gray())
pyplot.pcolormesh(x, y, numpy.flipud(arraydicom[:, :, 2])) # 第三个维度表示现在展示的是第几层
pyplot.show()
这两个代码都是可以进行读取的。但是不知道为什么在焊接检测中的dcm图像却无法进行读取。
以上这篇.dcm格式文件软件读取及python处理详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。
希望与广大网友互动??
点此进行留言吧!
pydicom读取头文件_.dcm格式文件软件读取及python处理详解相关推荐
- import引入json文件_关于TypeScript中import JSON的正确姿势详解
前言 Typescript是微软内部出品的,用actionscript的语法在写js的一门新语言,最近 TypeScript 中毒,想想我一个弱类型出身的人,怎么就喜欢上了类型约束--当然这不是重点, ...
- 编写一个程序、读取一个python源程序文件_编写一个程序,读取一个python源文件,将文件中所有除保留字外的小写字母换成大写字母,生成后的文件要能被python解释器正确执行。...
[简答题]完成教材第4章 实训2 实训3 课后习题中的操作题3,4,5 请提交代码截图和效果截图 [单选题]病毒不包括以下成分 [填空题]酵母菌的繁殖方式主要是 . [判断题]在观察显微镜时,要遵循由 ...
- .dcm格式文件软件读取及python处理
要处理一些.DCM格式的焊接缺陷图像,需要读取和显示.dcm格式的图像.通过搜集资料收集到一些医学影像,并通过pydicom模块查看.dcm格式文件.若要查看dcm格式文件,可下Echo viewer ...
- 把img映象文件转化为dcm格式文件
上一篇说到用matlab和spm软件将医学图片dcm格式转为img格式,想到反过来该怎么做,见有人做过就刚好转一下学习.跟用软件不同的是这里是用matlab编程获得,就是把三维的img图像分离出多个二 ...
- msg文件转成html文件,如何将MSG格式的文件转换为PDF格式文件?
三.如何将MSG格式的文件转换为PDF格式的文件? 想要随时查看MSG格式文件的话,格式转换就成为了理想的途径,下面将教大家将MSG格式的文件转换为PDF格式文件三种方式,一起去学习一下吧. 1.借助 ...
- mhd格式三维图像显示_关于医疗影像的mhd和dcm格式图像的读取和坐标转换
本篇博客主要对近年来大赛(Luna16,kaggle,天池)中使用的肺部图像的读取和坐标转换进行整理,如果有错误,欢迎批评指正,谢谢. 1 介绍mhd格式的数据: 数据可以在Luna16(https: ...
- pythoncsv格式_python实现csv格式文件转为asc格式文件的方法
一.背景描述 csv格式文件是一种类似于excel的文件格式 asc格式文件是一种可以用text打开的文本文件 csv转asc本来可以用arcgis顺利完成,但由于csv数据量太大(744万行),ar ...
- python 读取csv文件转成字符串,python实现csv格式文件转为asc格式文件的方法
一.背景描述 csv格式文件是一种类似于excel的文件格式 asc格式文件是一种可以用text打开的文本文件 csv转asc本来可以用arcgis顺利完成,但由于csv数据量太大(744万行),ar ...
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 目录 利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 1.先下载ff ...
最新文章
- boost::describe模块宏BOOST_DESCRIBE_PP_FOR_EACH的测试程序
- ubuntu 14.04 如何设置静态ip
- frame越过另一个frame_拥抱swoole(三)之用php实现一个混合服务器
- odoo的 CRM系统为何如此受欢迎
- 吉日嘎拉DotNet.BusinessV4.2中的一处bug,及我的修复和扩展
- 中油即时通信电脑版_一文看懂云视频会议与即时聊天软件的差别
- Java项目——Everything 开发思路
- android dmp文件解析,用minidump_stackwalk分析dmp文件失败
- 计算机配置很高 但是很卡,电脑配置高但很卡_电脑配置很高但还是很卡是怎么回事啊?...
- kotlin serialization 使用指南(一)
- 对团队中“这是某某某的问题”引起的思考
- Yourkit 监控Jetty(stand-alone)
- 网传美团今年应届生年薪 35w+,严重倒挂老员工,为什么互联网大厂校招的薪资一年比一年高?
- 拿到阿里50K offer的数据分析师,都是什么水平?
- 自动驾驶中图像与点云融合的深度学习研究综述
- 一次业务逻辑优化,竟然解决了MySQL CPU消耗800%的性能问题!
- 高内聚低耦合是什么含义,怎么实现?
- 7-45 航空公司VIP客户查询 (25 分)
- 河北师范大学的计算机专业好吗,河北师范大学计算机应用技术到底咋样啊?
- buuctf刷题-Crypto-联想脑洞-达芬奇密码
热门文章
- 银行笔试题目汇总——英语能力测试
- Arduino-UNO MPU9250/6500
- CAN log之blf/vsb/asc/trc
- html5魔塔存档模块,魔塔世界完整版源码
- 2020.6.29 概率统计-Task04-方差分析
- python写软件实例-如何编写Python软件开发文档(7个技巧)
- vue-cli3.x创建项目失败
- 《Journal of Renewable and Sustainable Energy》期刊介绍(SCI 4区)
- 深度解读:云网融合的多云网络
- mongodb的linux安装和客户端链接步骤