当前位置: 首页 > news >正文

读取.nrrd和.dcm文件格式医学图片可视化与预处理

nrrd数据格式

MITK默认会将医学图像保存为格式为NRRD的图像,在这个数据格式中包含:

1、一个单个的数据头文件:为科学可视化和医学图像处理准确地表示N维度的栅格信息。
2、既能分开又能合并的图像文件。

nrrd_options输出
{u’dimension’: 3, # 维度
u’encoding’: ‘raw’, # 编码方式
u’endian’: ‘little’, #
u’keyvaluepairs’: {},
u’kinds’: [‘domain’, ‘domain’, ‘domain’], # 三个维度的类型
u’sizes’: [30, 30, 30], #三个维度的大小
u’space’: ‘left-posterior-superior’, # 空间信息
u’space directions’: [[‘1’, ‘0’, ‘0’], [‘0’, ‘1’, ‘0’], [‘0’, ‘0’, ‘1’]],
u’space origin’: [‘0’, ‘0’, ‘0’],
u’type’: ‘short’}

dcm数据格式

DICOM(DigitalImaging andCommunications inMedicine)是指医疗数字影像传输协定,是用于医学影像处理、储存、打印、传输的一组通用的标准协定。
DCM格式的文件会存储其各类重要信息。其中,常用到
(1)Patient ID : 患者ID (一般与患者的文件夹命名一致);
(2)Series Number : 属于同一三维数据的该序号应当是一样的,例如都是同一CT图像中的某张切片,那么该值是一样,通过该值判断是不是属于同一个三维数据(可能一个患者拍了多张CT图像);
(3)Image Position :该切片左上角像素点的空间位置。简而言之,利用Series Number找出患者文件夹下的所有属于同一三维图像的所有切片,然后利用Image Position对这些切片进行排序并重构成三维数据。

这里仅展示二维读取

代码实现

import nrrd
import pydicom
import numpy as np
import matplotlib.pyplot as plt# dicom文件
path = ".dcm"
ds = pydicom.dcmread(path,force=True)
data = np.array(ds.pixel_array)
plt.figure()
plt.imshow(data,cmap='gray')
plt.axis('off')
plt.show()#nrrd文件
nrrd_filename = '.nrrd'
nrrd_data, nrrd_options = nrrd.read(nrrd_filename)
print(nrrd_data.shape)
data =nrrd_data[:,:,50]#取切片
data = np.array(ds.pixel_array)
def WLww(image,WL,WW):min_v = (2 * WL - WW) / 2.0 max_v = (2 * WL + WW) / 2.0img1= (image-min_v)/WWimg1[img1>1]  = 1img1[img1<0]  = 0img1=img1*255return img1
data = WLww(data,20,400)
plt.figure()
plt.imshow(data,cmap='gray')
plt.axis('off')
plt.show()

结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

读取.nrrd和.dcm文件格式医学图片可视化与预处理

nrrd数据格式 MITK默认会将医学图像保存为格式为NRRD的图像&#xff0c;在这个数据格式中包含&#xff1a; 1、一个单个的数据头文件&#xff1a;为科学可视化和医学图像处理准确地表示N维度的栅格信息。 2、既能分开又能合并的图像文件。 nrrd_options输出 {u’dimension’:…...

VS CODE中的筛选器如何打开?

最近更新了vscode1.82版本&#xff0c;发现在git管理界面有一个“筛选器”功能&#xff0c;十分好用&#xff0c;后来关掉了&#xff0c;找了好久都没有找到办法打开这个筛选器功能&#xff0c;今天无意中不知道按到了哪个快捷键&#xff0c;打开了&#xff0c;就是下图这个&am…...

vue 多环境文件配置(开发,测试,生产)

1.经常我们在开发时候会有不同环境&#xff0c;要代理的路由等等都会出现不同 配置一下三个文件打包的时候&#xff0c;执行三个不同的指令就会打包不同的环境 npm run build:dev npm run build:test npm run build:prodpackage.json 中配置scripts 指令 以,env.development…...

在服务器上搭建pulseaudio的运行环境,指定其运行目录、状态目录和模块目录

如果想在搭建 PulseAudio 的服务器上指定其运行目录、状态目录和模块目录&#xff0c;可以通过修改 PulseAudio 的配置文件来实现。一般情况下所涉及的配置文件和相关选项如下所示&#xff1a; 1、配置文件路径&#xff1a;通常情况下&#xff0c;PulseAudio 的配置文件位于 /…...

[Qt]QListView 重绘实例之一:背景重绘

0 环境 Windows 11Qt 5.15.2 MinGW x64 1 系列文章 简介&#xff1a;本系列文章&#xff0c;是以纯代码方式实现 Qt 控件的重构&#xff0c;尽量不使用 Qss 方式。 《[Qt]QListView 重绘实例之一&#xff1a;背景重绘》 《[Qt]QListView 重绘实例之二&#xff1a;列表项覆…...

国庆周《Linux学习第二课》

Linux开篇指南针环境安装(第一课)-CSDN博客 Linux详细的环境安装介绍在上面 第一 环境准备过程 安装过程...

6年前的麒麟980依旧可以再战

麒麟980&#xff0c;使用6年后的今天&#xff0c;我对它进行跑分测试。 在bench旗下的VRMark跑分中&#xff0c;麒麟980荣获5023分&#xff0c;同款跑分APP&#xff0c;要知道同一时期的高通骁龙855只有4937分&#xff0c; 打游戏&#xff0c;以和平精英为例&#xff0c;帧率3…...

JS计算任意多边形的面积

计算任意多边形的面积需要使用一些几何数学公式。具体的计算方法取决于多边形的形状和提供的顶点坐标。下面是一个通用的 JavaScript 函数&#xff0c;用于计算任意多边形的面积&#xff0c;假设你提供多边形的顶点坐标数组&#xff1a; function calculatePolygonArea(vertic…...

ios xcode15 navigationController?.navigationBar.isHidden = false无效

xcode 15 用 navigationController?.setNavigationBarHidden(true, animated: false)隐藏navigationBar后&#xff0c;再调用 navigationController?.navigationBar.isHidden false无效 解决 用 navigationController?.navigationBar.isHidden true隐藏navigationBar...

Python二级 每周练习题20

练习一: 日期计算器 设计一款日期计算程序&#xff0c;能否实现下面的功能&#xff1a; (1)要求用户分别输入年、月、日&#xff08;分三次输入&#xff09;&#xff1b; (2)程序自动会根据输入的年月日计算出这一天是这一年的第几天&#xff1b; (3)输出格式为&#xff1a;这…...

深度学习-一个简单的深度学习推导

文章目录 前言1.sigmod函数2.sigmoid求导3.损失函数loss4.神经网络1.神经网络结构2.公式表示-正向传播3.梯度计算1.Loss 函数2.梯度1.反向传播第2-3层2.反向传播第1-2层 3.python代码4.MNIST 数据集 前言 本章主要推导一个简单的两层神经网络。 其中公式入口【入口】 1.sigmod…...

ES写入数据报错:retrying failed action with response code: 429

报错&#xff1a; 使用logstash导入分片数量为9的index发生错误,[logstash.outputs.elasticsearch] retrying failed action with response code: 429 ({"type">"es_rejected_execution_exception", "reason">"rejected execution …...

Redis给Lua脚本的调用

Redis给Lua脚本的调用 Redis为Lua提供了一组内置函数&#xff0c;这些函数可用于执行与Redis数据存储和操作相关的任务。这些内置函数可以在Lua脚本中使用&#xff0c;以便在Redis中执行各种操作。以下是一些常用的Redis Lua内置函数&#xff1a; 主要知道call就好了 redis.ca…...

Spring工具类--ReflectUtils的使用

原文网址&#xff1a;Spring工具类系列--ReflectUtils的使用_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Spring的ReflectUtils的使用。 ReflectUtils工具类的作用&#xff1a;便利地进行反射操作。 Spring还有一个工具类&#xff1a;ReflectionUtils&#xff0c;它们在功能上…...

联盟 | 彩漩 X HelpLook,AI技术赋能企业效率提升

近日&#xff0c;AI 驱动的 PPT 协作分享平台「 彩漩 」与 AI 知识库搭建工具「 HelpLook」&#xff0c;携手为用户工作流注入更多智能和创造力&#xff0c;全面拥抱 AIGC 时代带来的机遇&#xff0c;致力于提供前沿的智能解决方案。 彩 漩 彩漩是一个以 AI 技术为基础、贯彻 …...

MATLAB m文件格式化

记录一个网上查到的目前感觉挺好用的格式化方法。 原链接&#xff1a; https://cloud.tencent.com/developer/article/2058259 压缩包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1ZpQ9qGLY7sjcvxzjMPAitw?pwd6666 提取码&#xff1a;6666 下载压缩包&#xf…...

​分拆菜鸟将使阿里巴巴股票迎来新一轮上涨?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;阿里巴巴(BABA)最近公布的季度财报显示&#xff0c;该公司有能力实现快速盈利。 &#xff08;2&#xff09;据报道&#xff0c;阿里巴巴正计划分拆菜鸟集团&#xff0c;并将在香…...

Excel 技巧记录-那些复杂的公式和函数

目标表格的关键字在行和列里&#xff0c;匹配源表格的行和列对应的关键字 **具体需求为&#xff1a;**表A叫Total_202308.xlsx&#xff0c;sheet叫摊销前分析&#xff0c;表B叫data.xlsx,sheet叫总部费用&#xff0c;表A的数据里&#xff0c;A列是科目名称&#xff0c;第9行是…...

vue里使用elementui的级联选择器el-cascader进行懒加载的怎么实现数据回显?

需要实现的懒加载回显效果 比如&#xff1a;后端返回数据 广东省/广州市/天河区 &#xff1a;440000000000/440100000000/440106000000&#xff0c;需要我们自动展开到天河区的下一级&#xff0c;效果如下 代码实现 我的实现思路就是拿到 440000000000/440100000000/44010600…...

Qt raise()问题

项目场景&#xff1a; 需要将一个弹窗提升至最前面&#xff0c;那么弹出时直接使用raise()即可。 问题描述&#xff1a; 使用QDialog::raise()时&#xff0c;偶发界面阻塞卡死现象。 原因分析&#xff1a; QDialog::raise()函数是置于顶部的作用&#xff0c;但是如果使用不当…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...