VTK
文章平均质量分 80
cfqcfqcfqcfqcfq
这个作者很懒,什么都没留下…
展开
-
VTK读取原始数据(裸数据)和序列图像
有时候我们想读取得图像格式VTK中没有相应的IO类支持或者图像格式是一些商家自定义的(医疗图像中经常会有这种情况)。这时候VTK为我们提供了一个vtkImageReader 类,该类提供了读取原始数据的办法,但需要我们设定待读去图像的宽度、高度、像素类型等一系列参数。以我所接触到的图像格式做说明。hraw格式是160kv工业CT所获取的切片图像格式类型。该种类型是CT生产商家自定义的图像格式。其图原创 2016-04-24 17:19:32 · 5167 阅读 · 0 评论 -
VTK:连通区域分析
在VTK中连通区域分析常用到的类是:vtkPolyDataConnectivityFilter。从名字可以看出来其输入类型为vtkPolyData;了解VTK的人都知道这是图形的基本数据结构保存了图形的几何结构和拓扑结构。如果你要进行连通分析的对象是图形那自然就没问题。但如果需要对图像进行连通区域分析,那该类就不能直接用了,要先进行一步数据类型转换。根据参考文1,我们可以以一种非严谨方式将VTK数原创 2016-11-17 15:39:44 · 3990 阅读 · 0 评论 -
vtkImageData转化为cv::Mat
前面用opencv实现了基于凹点匹配重叠图像分割(凹点匹配分割)。现在因为项目要求要在VTK中完成类似的功能,但是VTK主要是做三维可视化方面,但是图像分析上就差一些。现希望通过数据格式转换来时这两中库包有机结合使用。最简单的一种方法就以访问像素的方式,一点点将vtkImageData像素全部复制到Mat中,下面介绍另一种方法:描述:通过vtk来读图和显示,中间使用Opencv做图像处理:原创 2016-11-14 22:02:29 · 1857 阅读 · 0 评论 -
VTK:轮廓最小凸包提取与显示
vtk提取凸包使用类 PointsPrjectHull。该类可以获取任意点集的最小凸包。该类输入为点集。输出为包围该点集的最小凸包轮廓点集。前面一章讲了如何寻找图像轮廓并对其进行连通性分析(连通区域分析)。现在以某一连通域的轮廓点集作为输入提取其最小凸闭包。将提取到的凸闭包用vtkPlolyLine来保存显示关键代码:vtkSmartPointer point0=原创 2016-11-20 15:36:27 · 4464 阅读 · 0 评论 -
ITK: 连通区域检测和分析
最近做实验需要对二维图像进行连通区域分析,在翻阅资料后发现ITk提供了相应的功能。十分好用。在这里总结一下。 实现连通区域分析细分为两个步骤 1、寻找连通区域 2、连通区域分析。ITK中使用下面的类寻找标记连通区域#include "itkConnectedComponentImageFilter.h"该类输出一个对各连通区域标记过的图像,称之为LabelImage.连通区域分原创 2016-07-13 21:08:54 · 6072 阅读 · 3 评论 -
VTK: 检测点是否在三维物体内部
很多时候需要检测一个点是否位于物体内部。vtk中很好的提供了这样的方法:vtkSelectEnclosePoints vtk wiki中给出了一个很详细的例子说明使用方法:见参考文献1; 自己实际测试 发现其获取的结果不准确。同一个点重复检测都会出现不一致的结果。经过查询。得到了一个很好的了解。见参考文献2. 首先说一下该类的检测原理。按照文献给出的解释:原创 2016-11-25 10:31:23 · 4273 阅读 · 0 评论 -
VTK:测量类widget总结
本文主要简单介绍几个具体的和测量相关的widget: vtkAngleWidget(角度测量) 、vtkDistanceWidget(距离测量) 、vtkSplineWidget(样条部件)。 最后一个vtkSplineWidget是拟合样条的显示部件,本人把其当作曲线长度测量工具。由于其本身不能显示长度信息,所以对其进行了扩展,使其能够实时显示长度信息。原创 2017-04-17 20:54:08 · 4399 阅读 · 0 评论 -
VTK:多线条表示和渲染
在VTK中表示线条的数据集是vtkPolyLine. 将其添加到vtkPolyMapper,然后在添加到vtkActor中进行渲染就可以看到一个线条。但如果要表示多个线条,则一个vtkPolyLine是无法满足需求的。此时有两个思路来处理: 1)创建多个vtkPolyLine来表示线条。渲染过程,可以选择用多个vtkActor来分别渲染每一个vtkPolyLine。 2)使用vtk原创 2017-05-02 21:52:17 · 2254 阅读 · 1 评论 -
Opencv、VTK在vs2013中的配置
本人在程序开发时候,用到了这两个库包,所以放到一起介绍一下两个库包的配置,其实在window上库包配置是有很大的相同性的。 Opencv配置 1)Opencv目录组织结构:nclude: 包含opencv头文件.● lib: 存放lib文件( 动态编译链接库),是有的函数声明式.●bin:存放Dll文件( 动态连接库文件),是所有函数的实现过程.●staticlib: 静态编译连接库,存放也是.lib文件。但是里面包括了函数的声明和实现。原创 2017-03-26 15:17:49 · 3762 阅读 · 0 评论 -
VTK: 拾取方式的三种实现
拾取操作是可视化应用程序中常见的一种功能。拾取主要是用于选择数据和Actor或者获取底层的数据值。在显示位置(以像素为坐标值)中拾取时,就会调用vtkAbstractPicker的Pick()方法。依赖于所用的拾取类不同,拾取时返回的信息也不同,最简单的是返回一个x-y-z的全局坐标值,或者是单元(cell)的ID值,点的ID值,单元参数坐标(CellParametric Coordinate原创 2017-05-30 16:15:25 · 5344 阅读 · 0 评论 -
VTK: vtkTubeFilter生成管道
vtkTubeFilter可以用来生成包围一条折线的管道。下面是一个vtkTubeFilter的使用例子。围绕一条线创建一个圆柱形管道。 #include #include #include #include #include #include #include #include #include #include #include #include原创 2017-06-07 16:38:32 · 4579 阅读 · 4 评论 -
VTK: 相机参数控制
用户是通过相机来观察三位场景中的物体,精准控制相机来实现用户从不同角度、不同位置来观察三位物体。我们可以通过GetActiveCamera()函数来获取当前渲染器(vtkRenderer)中的默认相机。也可以通过SetActiveCamera()函数来设置一个新相机到渲染器中。 函数签名如下: // Description: // Specify the camera to use f原创 2017-06-08 20:14:59 · 2569 阅读 · 1 评论 -
VTK: vtkImagePlaneWidget生成纹理切片相关问题
最近在做项目时,需要使用vtkImagePlaneWidget(部件相关介绍见使用说明)对可视化模型进行重切获取切片数据进行属性值分析。在这个过程出现了一些列问题,现在做个总结。 问题一:每当给变切片大小时候获取的连通区域(连通区域分析)像素值个数是变化的,不是固定值。 VTK图像的数据结构是有 起始位置origin、像素维度dimensio原创 2016-10-27 12:14:17 · 1703 阅读 · 0 评论 -
VTK-6.3.0编译(支持Qt编程)以及QVTKwidget插件安装
重新整理一下VTK编译过程(尤其是涉及到Qt方面的选项配置) 计算机系统:win10(x64) VTK版本:VTK-6.3.0 Qt版本:Qt 5.4.2(msvc_2013_x64_opengl) Cmake版本: Cmake3.5 第一步:创建两个文件夹原创 2016-06-22 17:29:50 · 7018 阅读 · 1 评论 -
VTK:二维图像拾取时切换图片时出现红框
这是我在做项目时候遇到的一个实际问题,虽然不影响使用,但却实际存在,会为软件使用带来一些不便。 问题描述:使用VTK实现二维图像的坐标点拾取,当切换到下一张图片时候会发现出现一个红色的框框。并且往往导致你当前图片显示位置偏移 出现问题的原因:在切换图片时 调用GetNumberofItems()方法 可以看到当我们没有进行坐标拾取时候 Prop的个数为1,在拾取之后,发现Prop原创 2016-06-22 16:08:19 · 1165 阅读 · 1 评论 -
VTK交互
说到VTK交互,马上会想到的就是vtkRenderWindowInterator。他是VTK的交互类 可以响应各种的鼠标/键盘/时钟等消息事件。今天阅读了大量资料,关于如何给交互器增加或更改交互事件。在这里梳理一下,给以后做个参考。 在一篇VTK官方文档翻译中 看到大的方向先分为两大类(参考文献1):VTK两种不同的方法控制交互:(1)使用vtkInteractStyle的子类 (2)添加Obse原创 2016-04-29 16:13:03 · 5289 阅读 · 0 评论 -
ITK/VTK管线执行进度值得获取 设置管线中断
ITK/VTK图像处理过程普遍耗时,所以设置进度条监听事件进度是一个很好的选择。在ITK和VTK中使用观察者/命令模式来监听任务的进度事件(ProgressEvent)。关于观测者/命令模式见之前一篇博文(VTK交互)。在使用addObserver()确定了所监听的事件后。最主要的是实现事件响应函数。下面分别记录ITK和VTK事件响应。 VTK VTK中事件响应可以通过两原创 2016-05-01 10:58:31 · 1240 阅读 · 0 评论 -
VTKError:no override found for 'vtkImageMapper' 和Link to vtkInteractionStyle
在QtCreator 配置好VTK后 (相关配置见参考【1】),我们测试过程会遇到一些vtkError, 据说这些问题是VTK6.0版本之后才有的问题 是一些兼容性问题。现在列出自己找的的解决方法。 先把问题贴出来:原创 2016-04-15 14:35:13 · 1356 阅读 · 1 评论 -
VTK:基于Qt的VTK右击菜单实现
前面试过在Qt中实现右击菜单Qt右击菜单 现在尝试在嵌套在Qt中的VTK窗口实现右击菜单 原有方式不能成功。原因也很简单:在VTK窗口发送的是VTKEvent 所以Qt中的contextMenuEvent(QContextMenuEvent *event) 不会处理该事件。所以要另谋出路 翻阅VTK文档发现了一个实现右击菜单的实例 贴出来与大家分享: void GUI4::popup(v原创 2016-05-07 13:38:49 · 2262 阅读 · 1 评论 -
窗位和窗宽
最近在研究医学图像 其中涉及到窗位和窗宽的概念。查阅资料了解后 现在做一个总结! 日常生活中的显示器的灰度范围是256级,日常我们见到的图像基本都是这个灰度范围。而医疗图像处于特殊要求,其灰度级会比较高,因此很多医疗图像原始数据是不能在显示器上显示!所以才有了窗位窗宽的概念!其概念一幅图就可以表达清楚:原创 2016-04-23 17:06:23 · 7261 阅读 · 0 评论 -
VTK: VTK实体交互widget
之前在 VTK交互 使用交互样式和添加监听事件两种方式拓展VTK交互。最近接触了VTK用来完成交互的widget 。因为提供了实体部件会使得交互更加人性化。VTK的Widget类是从VTk5.1之后重新设计完善。实现了交互和实体表达的分离。创建VTK widget需要完成如下步骤: 1 实例化widget 2 实例化合适的几何表达体 3 可以用添加监听事件方式为wi原创 2016-05-08 16:29:17 · 2192 阅读 · 0 评论 -
使用QWT实现折线统计图
QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图最近两天对QWT有一个简单的学习,不敢说完全掌握了,但还是完成了简单的统计图绘制,在这里做个总结,方便自己以后浏览一个简单的实例,其基于VTK获取图像直方图的数据,然后由QWT负责显示折线图大概用到的类class vtkImageAccu原创 2016-06-04 17:15:10 · 2573 阅读 · 0 评论 -
VTK: VTK Error 问题集
总结一下VTK使用过程中的一些错误: 1、非编译错误 这部分错误并不是因为你错误使用VTK类或者是逻辑问题而导致的错误,而是因为缺失一些初始化的头文件而导致的错误 需要在main函数中先添加初始化头文件:#include 错误一:VTK Error: no override found for 'v原创 2016-06-28 17:20:29 · 5597 阅读 · 8 评论 -
图像数据在ITK和VTK之间转换
由于ITK没有提供可视化功能,所以进行图像处理时,经常将ITK和VTK一起使用。图像数据的转换是使用这两个工具包的基础。转换功能是由ITK工具包提供的接口。使用时需要引用的头文件如下:#include "itkVTKImageToImageFilter.h"#include "itkImageToVTKImageFilter.h"下面是一个简单的例子: // --[1]读图原创 2016-07-13 20:36:38 · 4643 阅读 · 0 评论 -
血的教训:程序编译出错 crashed崩溃
自己的项目之前使用的是ITK_4.9.0版本的库函数,最近发现ITK跟新到4.10.0版本 所以本人也跟新了 但编译后出现crashed崩溃。打开debug目录中的可执行文件发现是无法找到ITK库的DLL文件。查资料说是可能是你的ITK的存放目录存在中文名,经过仔细检查,并未发现存在中文名。 迷茫了半天,忽然意识到,环境变量里的目录地址还是旧版本的ITK,立即更改在重新编译。发现还是cras原创 2016-07-14 12:44:31 · 2240 阅读 · 0 评论 -
VTK:VTKImagePlaneWidget 使用说明
VTKImagePlaneWidget 是一个3D交互部件,用来重切图像数据。 作为交互部件,其工作在当前交互器风格下(也就是说,交互部件会从交互器中截取自己所能响应的VTK事件并做出处理,对于不能响应的事件,该事件会继续油其他注册栏的观察响应处理)。因此 要先使用该部件,必须先调用 SetInteractor()函数设置交互器。也可以通过SetCurrentRenderer()设置渲染原创 2016-07-26 13:24:02 · 8612 阅读 · 5 评论 -
OpenCV 、VTK for python 安装
最近一直在学习python,之前实验室做图像图形处理的,在c++编程语言下会经常使用OpenCV、VTK这些好用的三方开源库。这些库包都提供了python接口,所以这里记录一下OpenCV 、VTK for python 的安装。安装方法有多种,这里我选择在用Anaconda开发套件来安装这两个库。这应该是最简单、也是最方便管理的方法。 Anaconda是一个用于科学计算的P...原创 2018-01-04 15:36:54 · 1372 阅读 · 0 评论