PyQt Python 使用 VTK ITK 进行分割 三维重建 医学图像可视化系统 流程

效果:

 重建流程:

1. 输入 可以读取DICOM ,nii nrrd 等数据

    设置读取器以加载 DICOM 图像系列。
    使用 itk::GDCMImageIO 作为 DICOM 图像的输入输出接口。
    使用 itk::GDCMSeriesFileNames 获取指定路径下的所有 DICOM 文件名。
    使用 itk::ImageSeriesReader 读取 DICOM 图像序列,并将其作为3D图像存储。

2.  分割

    创建 itk::ThresholdImageFilter 进行图像阈值分割。也可以使用 等高线分割,区域增加分割,AI 分割   

3. 连通性分析

    创建 itk::ConnectedComponentImageFilter 对分割后的图像进行连通性分析。
    对每个连通区域分配唯一的标签。
    获取标记(labeled)图像。
    获得连通性分析后的图像像素,后面就可以对像素做处理

 4. 选定区域处理

    遍历用户选定的点。
    对每个点,将屏幕坐标转换为图像坐标。
    从标记图像中提取每个点的标签值。
    将提取的标签值存储在列表中。

5. 转换为 VTK 图像

    将 ITK 图像转换为 VTK 的 vtkImageData。
    并部分不能颜色显示;
 
6. 创建并配置 VTK 体渲染器

    创建 vtkPolyDataMapper vtkActor 并设置输入数据。
    
    定义颜色 ,以及体属性。

7. 可视化

    创建 VTK 渲染器和渲染窗口。
    添加体对象到渲染器。
    设置背景色并重置摄像机。
    启动渲染窗口交互器以开始交互式查看。

8.输出 保存
   三维模型,可以进行单独保存,或全部保存

这个过程涵盖了从读取  医学图像、图像处理(阈值分割和连通性分析)、用户交互(选定区域处理)到最终的3D可视化。

视频:

PyQt Python VTK ITK 分割 三维重建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Code Composer Studio (CCS) - Current and Local Revision

Code Composer Studio [CCS] - Current and Local Revision References 鼠标放在文件内的任意位置,鼠标右键 -> Compare With -> Local History -> Revision Time. References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

Doris ——SQL原理解析

目录 前言 一、Doris简介 二、SQL解析简介 2.1 词法分析 2.2 语法分析 2.3 逻辑计划 2.4 物理计划 三、Doris SQL解析的总体架构 四、Parse阶段 五、Analyze阶段 六、SinglePlan阶段(生成单机逻辑Plan阶段) 七、DistributedPlan计划&#xf…

SQL-Labs靶场“11-15”关通关教程

君衍. 一、十一关 基于POST单引号字符型注入1、源码分析2、联合查询注入3、报错注入 二、十二关 基于POST双引号字符型注入1、源码分析2、联合查询注入3、报错注入 三、十三关 基于POST单引号报错注入变形1、源码分析2、报错注入 四、十四关 基于POST双引号报错注入1、源码分析…

代码随想录day24--回溯的应用3

LeetCode93.修复IP地址 题目描述: 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是…

Chapter 8 - 15. Congestion Management in TCP Storage Networks

User Actions After learning the states of queue utilization, the following are the actions that admins and operators can take while using TCP transport for storage traffic. 了解了队列利用率的状态后,管理员和操作员在使用 TCP 传输存储流量时可以采取以下措施。…

使用八叉树模拟水和烟雾 Simulating Water and Smoke with an Octree Data Structure 论文阅读笔记

原文: Losasso, Frank, Frdric Gibou, and Ron Fedkiw. “Simulating water and smoke with an octree data structure.” Acm siggraph 2004 papers. 2004. 457-462. 引言 这篇文章扩展了 [Popinet 2003] 的工作,拓展到表面自由流,并且使…

Oracle 基础入门指南

一、什么是Oracle? Oracle是一款由美国Oracle公司开发的关系型数据库管理系统。它支持SQL查询语言,并提供了丰富的功能和工具,用于管理大规模数据存储、处理和访问。Oracle被广泛应用于企业级应用中,包括金融、电信、零售等各行各…

第12章 反射

12.1 反射概述 Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以得到任意一个对象所属的类的信息,可以调用任意一个类的成员变量和方法,可以获取任意一个对象的属性和方法…

突破编程_C++_高级教程(多线程编程实例)

1 生产者-消费者模型 生产者-消费者模型是一种多线程协作的设计模式,它主要用于处理生产数据和消费数据的过程。在这个模型中,存在两类线程:生产者线程和消费者线程。生产者线程负责生产数据,并将其放入一个共享的数据缓冲区&…

Java中 ConcurrentSkipListSet和ConcurrentSkipListMap的区别

ConcurrentSkipListSet和ConcurrentSkipListMap之间有什么区别 ConcurrentSkipListSet和ConcurrentSkipListMap都是Java并发包java.util.concurrent中的类,它们都使用"Skip List"(跳表)数据结构。跳表是一种随机化数据结构&#x…

【nginx实践连载-1】安装部署配置初始化

要在Ubuntu上安装、部署和配置Nginx,可以按照以下步骤进行操作: 步骤1:安装Nginx 打开终端(Terminal)。运行以下命令更新软件包索引:sudo apt update安装Nginx:sudo apt install nginx步骤2&a…

Python常见的字符串格式化

Python中字符串格式化有多种方式,以下是其中常用的几种: 使用%进行格式化:类似于C语言中的printf方式。 name "Alice" age 11 message "Hello, %s! You are %d years old." % (name, age) print(message)使用format()…

js---webAPI

01 声明变量 js组成: DOM:操作网页内容的,开发页面内容特效和实现用户交互 BOM: DOM树:将 HTML 文档以树状结构直观的表现出来,我们称之为文档树或 DOM 树 文档树直观的体现了标签与标签之间的关系 CSS获取元素的方法 document.querySele…

态、势、感、知的偏序、全序与无序

在态势感知中,"态"、"势"、"感"和"知"可以被理解为描述不同层次的概念。而在偏序、全序和无序方面,它们可以有不同的关系,简单地说,偏序关系表示部分的可比较性,全序关系表示…

精品springboot基于大数据的电脑主机硬件选购助手-可视化大屏

《[含文档PPT源码等]精品基于springboot基于大数据的电脑主机硬件选购助手[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: Java——涉及技术: 前端使用技术&a…

Cron表达式选择器

Cron表达式选择器 功能描述 Cron表达式选择器是用于定时任务调度的一种常见工具,通常用于指定任务的执行时间。Cron表达式由一系列时间单位和对应的时间值组成,用于指定任务的执行时间。下面是一个Cron表达式的示例 0 0 12 * * ?这个表达式的含义是每…

有一台阿里云轻量应用服务器可以用来做什么?

阿里云轻量应用服务器可以用来做什么?轻量服务器可用于网站搭建、个人博客、图床、云端学习环境、电商建设、论坛社区、开发环境配置等。可以在阿里云CLUB中心查看 aliyun.club 当前最新的优惠券和活动信息。 轻量是不是性能差?不是,轻量应用…

电阻器的脉冲浪涌能力?

由于现有需求,许多现代电子电路和设备都会经历瞬态脉冲和浪涌。这反过来又导致需要“设计”瞬态浪涌保护,尤其是在电机控制器等电路中。当电机启动时,此时消耗的电流过大,可能导致电阻器故障。同样,如果电容器用于电机…

洛谷: P1480 A/B Problem

题目描述 输入两个整数 a , b a,b a,b,输出它们的商。 输入格式 两行,第一行是被除数,第二行是除数。 输出格式 一行,商的整数部分。 样例 #1 样例输入 #1 10 2样例输出 #1 5提示 0 ≤ a ≤ 1 0 5000 0\le a\le 10^{500…

【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱13(附带项目源码)

效果演示 文章目录 效果演示前言每次丢弃一个物品源码完结前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第25篇中,我们将探索如何用unity制作一个3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机…