VTK系列教程九:VR图像裁剪

2023-05-16

我们已经实现了自定义交互,但有一种交互比较特殊:VR图像的任意形状裁剪,俗称套索工具,它能够将我们不需要的部分,有遮挡的部分裁减掉,今天我们就来看一下其实现方式。
图片
VTK中没有提供简单的方法来实现该功能,我们只能利用VTK中的基础功能一步步实现。

实现这个功能的第一步就是要能在VR图像上画一个多边形的标注,并获取多边形的顶点,在VTK中我们可以通过vtkInteractorStyleDrawPolygon实现。

this->m_iren->SetInteractorStyle(this->m_lassoStyle);
this->m_lassoStyle->GetPolygonPoints()

有了多边形的顶点,我们需要计算出体数据场vtkBoundingBox垂直屏幕方向最远点、和最近点,然后根据最近点和最远点以及顶点信息生成一个多边形vtkPolyData,计算该多边形与体数据场的最大交集,并根据交集生成一个vtkImageData用于掩膜。

上面过程我们用到了VTK中的vtkPolyDataToImageStencil、vtkImageStencilToImage类。

stencilToImage->SetInputData(BrushPolyDataToStencil->GetOutput());
stencilToImage->SetInsideValue(0);
stencilToImage->SetOutsideValue(255);
stencilToImage->SetOutputScalarType(VTK_UNSIGNED_CHAR);
stencilToImage->Update();
有了掩膜vtkImageData后,我们就可以进行裁剪操作了,如果体绘制使用的是vtkGPUVolumeRayCastMapper类,可以调用SetMaskInput函数来实现裁剪操作。

如果体绘制用的不是vtkGPUVolumeRayCastMapper,则可以根据掩膜结果直接操作原始vtkImageData,将原始数据中对应的值设置成一个边缘值,通过映射后该边缘值会被映射成一个黑色。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VTK系列教程九:VR图像裁剪 的相关文章

  • 挂载时提升未知的文件系统类型“LVM2_member”

    问题排查 xff0c 检查是该模块是否被做成了pv span class token punctuation span root 64 localhost home span class token punctuation span spa
  • RestTemplate和Feign的区别

    文章目录 1 远程调用方法 xff08 RestTemplate和Feign xff09 1 RestTemplate简单的远程调用原型2 Feign远程调用 1 远程调用方法 xff08 RestTemplate和Feign xff09
  • PostgreSQL创建物化视图并刷新

    1 创建物化视图 视图hnqyhxv person CREATE MATERIALIZED VIEW hnqyhxv person TABLESPACE sys default as SELECT FROM E PRI PERSON WHE
  • java实现判断当前时间,是否在指定时间范围

    目录 文章目录 java实现判断当前时间 xff0c 是否在三月的最后一个星期日到十月的最后一个星期六1 问题提出2 问题解决 java实现判断当前时间 xff0c 是否在三月的最后一个星期日到十月的最后一个星期六 1 问题提出 事情是这样
  • 记一次activiti审批意见字段乱码问题

    目录 文章目录 记一次activiti审批意见字段乱码问题问题描述解决思路1 数据源连接配置问题2 检查数据库存储字段是否乱码3 查看部署环境的编码4 程序启动命令直接指定编码方式 记一次activiti审批意见字段乱码问题 问题描述 项目
  • KEIL MDK平台 S3C2440 汇编语言软件仿真

    KEIL MDK平台 S3C2440 汇编语言软件仿真 KEIL MDK平台 S3C2440 汇编语言软件仿真建立工程 xff0c 编辑汇编语言程序编译链接源程序调试博客同款例程https download csdn net downloa
  • matlab 语法_MATLAB中的语法

    matlab 语法 The syntax is the method by which the programmer give various commands to the system or the software These com
  • 什么是SSR/SSG/ISR?如何在AWS上托管它们?

    概述 在这篇文章中 xff0c 我们将讨论如何在AWS上运行SSR SSG ISR以及App Runner的魅力 内容 我们将首先分别解释传统和现代网络应用 接下来 xff0c 我们将介绍如何在AWS上托管SSR SSG ISR 传统网络应
  • 一篇让你上手mysql安装以及my.ini配置

    mysql目前已经作为我们常用的数据库了 xff0c 今天我们学习来安装一下它 1 下载 从官网上下载安装包 xff08 也可以公众号回复mysql可以获取 xff09 https dev mysql com downloads mysql
  • ESP8266型号、下载、接线、烧录等怕忘总结

    ESP8266型号 下载 接线 烧录等怕忘总结 1 不同模块参数 下载接线等 xff08 1 xff09 ESP01 xff08 2 xff09 ESP01S xff08 3 xff09 ESP07 xff08 4 xff09 ESP07S
  • github下载慢

    方法一 xff1a 从GitHub下载文件一直非常慢 xff0c 查看下载链接发现最终被指向了Amazon的服务器 xff0c 下载地址是 http github cloud s3 amazonaws com xff0c 从国内访问Amaz
  • 再次安装Arch Linux!(Vmware,KDE\Gnome桌面,EFI/BIOS引导,双系统配置)更新时间2018/11/11

    1 下载Arch Linux镜像 下载地址 xff1a https xff1a www archlinux org download 可以看到一个磁力一个种子 xff0c 任意下载一个并使用支持的下载软件进行镜像的下载 2 1 xff08
  • ozone调试

    对于keil编译的工程没法用gdb调试 xff08 我没发现方法 xff09 xff0c 那就用Ozone调试 xff0c 官网 https www segger com products development tools ozone j
  • pat1068

    对于计算机而言 xff0c 颜色不过是像素点对应的一个 24 位的数值 现给定一幅分辨率为 M N 的画 xff0c 要求你找出万绿丛中的一点红 xff0c 即有独一无二颜色的那个像素点 xff0c 并且该点的颜色与其周围 8 个相邻像素的
  • windows7系统下如何升级powershell(2.0升级到3.0版本)

    最近在使用vagrant命令时提示2 0的版本不支持需要升级powershell操作如下 查看本机powershell版本号 开始 运行 xff0c 输入powershell进入命令行窗口 在命令行中输入 PSVersionTable PS
  • python+pytesseract 中文识别

    继写了第一篇 包含验证码识别的自动化登录脚本后在一次与朋友聊天中谈到中文识别 想起Tesseract OCR是有这个包的 xff0c 然后我就搞了搞 coding 61 utf 8 from PIL import Image import
  • Codeforces1153A-Serval and Bus(数学)

    原题链接 xff1a http codeforces com contest 1153 problem A 题目原文 xff1a A Serval and Bus time limit per test 1 second memory li
  • tinode登录流程

    登录 交互消息 out是客户端发出 in是客户端接收 客户端发出hi消息 里面主要包括了版本 ua lang消息out span class token punctuation span span class token punctuati
  • While(true)无限循环

    while true 作为无限循环 xff0c 经常在不知道循环次数的时候使用 xff0c 并且需要在循环内使用break才会停止 run 方法中基本都会写while true 的循环 xff0c 如下 xff1a public class
  • python 判断两个字符串的相似度

    import difflib import Levenshtein def get equal rate 1 str1 str2 return difflib SequenceMatcher None str1 str2 quick rat

随机推荐

  • 关于wujian100 SDK中GPIO的调试问题

    学习笔记 问题一 xff1a 引脚电平不稳定问题二 xff1a 进入GPIO中断后出不来 第一次在CSDN写博客 xff0c 用来记录一些学习笔记 xff0c 小白一只 xff0c 如有不足之处望大家多多理解和指导 xff01 分享一下关于
  • 嵌入式C语言-关于if条件判断为真但不执行if块语句的问题

    关于if条件判断为真但不执行if块语句的问题 xff0c 我一直也还不是很清楚是什么原因造成的 在网上查看了一些网友的评论但回答也不是非常的准确 xff0c 或者说每个人遇到的情况都略有不同 我是在调试开发板的时候遇到两类这样的bug xf
  • UEFI模式下双系统安装并引导启动注意事项(RHLE7.9&WIN10)

    UEFI模式下双系统安装并引导启动注意事项 xff08 RHLE7 9 amp WIN10 xff09 引言新的改变资源链接注意事项 引言 就如同大佬说的一样 xff0c 知识也是需要与时俱进的 xff0c 在技术高速革新的时代 xff0c
  • WAV音频文件格式分析

    用notepad 43 43 gt gt plugins gt gt HexEditor notepad 43 43 的一个二进制编辑器插件 可以以16进制查看文件内容 打开一个波形文件如下 xff1a 所有WAV波形文件都可以套用一下一下
  • 使用 Petalinux 定制 Linux 系统

    离线编译petalinux 本文是基于Alinx FPGA开发板 xff08 AXU2CGA xff09 学习过程中踩过的坑 xff0c 以做记录 1 创建工程目录 xff1a 路径中 表示用户 home 路径 mkdir span cla
  • docker安装TensorFlow2.0 + jupyter lab。

    docker加虚拟机 xff0c 简直就是坑中埋雷 让我抱怨一下 我们开始进入主题 我的系统是ubuntu20 安装在虚拟机里 这个我就不再阐述过多了 大家都会 docker安装过程我也不多说了 xff0c 这个资料很多 那么我们直接进入主
  • Python 利用 curve_fit 进行 e 指数函数拟合

    可能对大家有参考价值的信息是 xff1a 如何用 curve fit 进行 e 指数函数拟合 xff1b 如何将拟合后的结果输出到画布上 xff1b 坐标轴 标签 图例样式的设计 xff1b 文本框内容和格式 话不多说 xff0c 直接上代
  • 简单搜索--马的走法

    描述 在一个4 5的棋盘上 xff0c 输入马的起始位置坐标 xff08 纵 横 xff09 xff0c 求马能返回初始位置的所有不同走法的总数 xff08 马走过的位置不能重复 马走 日 字 xff09 输入 多个测试数据 每组2个数 x
  • 用cephadm单节点安装ceph

    文章目录 官方文档参考安装虚拟机操作系统安装ntp lvm2配置时区安装docker安装cephadm验证 安装修改dashboard密码 安装ceph common查看可用存储添加存储验证 使用pool创建删除pool 块存储 xff08
  • Ubuntu18.04.6更新nvidia驱动后重启卡住

    这已经不是我第一次重装驱动无法重启了 xff0c 更新完驱动之后重启首先会卡在这样一个界面 xff1a 后来进行了这样的操作 xff1a 第一步 xff1a 重启Ubuntu系统开机按esc或shift xff0c 会进入启动选择页 xff
  • Springcloud--服务调度OpenFeign、RestTemplate

    一 RestTemplate RestTemplate是Spring提供的用于访问Rest服务的客户端 xff0c RestTemplate提供了多种便捷访问远程Http服务的方法 能够大大提高客户端的编写效率 1 基本使用 发送GET请求
  • AdamTechLouis's talk: Deep Learning with Knowledge Graphs

    Last week I gave a talk at Connected Data London on the approach that we have developed at Octavian to use neural networ
  • anaconda3下64位python和32位python共存

    今天需要调用一个dll动态函数库 xff0c 但是本地的python是64位的 xff0c dll是32位的 xff0c 直接调用会报错 OSError WinError 193 1 不是有效的 Win32 应用程序 python版本 xf
  • django工程-根据不同条件查询数据库数据

    https docs djangoproject com en 2 0 ref models querysets field lookups
  • 为什么有透明度gif动态图放在网页上为什么变成纯色了

    为什么有透明度gif动态图放在网页上为什么变成纯色了
  • keil突然烧录不进去了解决记录

    keil突然烧录不进去了 一直显示如下界面 解决 xff1a 1 xff0c 拔插连接电脑的仿真器 xff0c 观察设备管理器保证能够识别到此设备 xff0c 如下图 2 除了选择正确的仿真器 xff0c 下图红框一定要勾选 xff0c 我
  • VTK系列教程一:整体架构

    VTK Visualization Toolkit 顾名思义主要用于三维计算机图形学 图像处理和可视化 xff0c VTK到底能做什么 xff1f 这还得从人类的视觉系统讲起 xff0c 现实世界中的物体在光照的作用下 xff0c 其反射的
  • VTK系列教程四:程序嵌套

    前一篇文章我们简单介绍了MedBeyond项目 xff0c 从一开始的设计初衷可见 xff0c 我们希望它能作为一个独立的进程运行 xff0c 也可嵌入到其他程序中作为其它UI进程的子窗口运行 xff0c 今天我们就来看一下程序的运行方式以
  • c语言数据结构数组修改数组_数组数据结构

    c语言数据结构数组修改数组 An array is a data structure for storing elements of one data type sequentially The elements of an array a
  • VTK系列教程九:VR图像裁剪

    我们已经实现了自定义交互 xff0c 但有一种交互比较特殊 xff1a VR图像的任意形状裁剪 xff0c 俗称套索工具 xff0c 它能够将我们不需要的部分 xff0c 有遮挡的部分裁减掉 xff0c 今天我们就来看一下其实现方式 VTK