VTK
文章平均质量分 76
JayneYJ
醉眼芳树下,半被落花埋
展开
-
VTK基础概念-圆柱体绘制
#include "vtkSmartPointer.h"#include "vtkRenderWindow.h"#include "vtkRenderer.h"#include "vtkRenderWindowInteractor.h"#include "vtkInteractorStyleTrackballCamera.h"#include "vtkCylinderSource.h"原创 2017-10-22 13:23:46 · 1199 阅读 · 0 评论 -
5.3.8 图像运算
1、数学运算vtkImageMathematics提供了基本的一元和二元数学操作。根据不同的操作,需要一个或者两个输入图像。二元数字操作要求两个输入图像具有相同的像素数据类型,颜色分量。当两个图像大小不同时,输出图像的范围为两个输入图像范围的并集,并且原点和像素间隔与第一个输入图像保持一致。#include <vtkMath.h>#include <vtkSmartPointe...原创 2018-07-04 20:13:32 · 427 阅读 · 0 评论 -
5.3.9 图像二值化
二值图像和label图像是图像分割中经常用到的两种图像。二值图像的每个像素只有两种可能的取值,例如0或者255。通常0代表图像的背景,而255代码图像前景。图像二值化是最简单的图像分割模型。设置一个灰度阈值,将图像中阈值以下的像素值设置为背景,阈值以上的像素值设置为前景,即可得当一副二值图像。在VTK中可以通过vtkImageThreshold类实现图像二值化。#include <vtkSm...原创 2018-07-06 16:12:37 · 587 阅读 · 0 评论 -
VTK计算机丢失vtkzlib.dll问题及解决办法
两三个月后再用VTK时,运行以前跑过的程序是提示: 无法启动此程序,因为计算机丢失vtkzlib.dll。尝试重新安装该程序以解决此问题。解决方法: 打开E:\VTK\VTK-7.0.0-bin\VTK.sln,点击重新生成解决方案即可解决问题!...原创 2018-10-30 20:28:46 · 1166 阅读 · 0 评论 -
5.4.1 边缘检测—梯度算子
图像中不连续的灰度值会产生边缘,图像的边缘检测是基于边界的图像分割方法,如分水岭算法,通常是分割原图的梯度图像,梯度实际上也是反应的图像边缘信息。图像边缘一般常用图像一阶导数和二阶导数来检测。梯度算子对应于图像一阶导数。图像一阶导数计算一般是通过差分运算来近似的。VTK中可以使用vtkImageGradient计算图像梯度。注意图像梯度是一个向量,具有方向和大小。因此vtkImageGradie...原创 2018-10-30 21:27:19 · 9194 阅读 · 0 评论 -
5.4.2 边缘检测-sobel算子
Sobel算子也是一种常用的梯度算子。Sobel算子计算稍微复杂,它采用3x3的模板。计算时模板在图像上移动,并在每个位置上计算对应中心像素的梯度值。VTK中vtkSobel2D计算图像的sobel算子,使用代码如下:/*-------------------------------------sobel----------------------------------------...原创 2018-11-01 21:06:05 · 2378 阅读 · 0 评论 -
5.4.3 边缘检测-canny算子
Canny算子是John Canny于20世纪80年代提出的一种多级边缘检测算法。John Canny研究了最优边缘的特性,即检测到的边缘要尽可能跟实际的边缘接近并尽可能的多,同时,要尽量降低噪声对边缘检测的干扰。其计算步骤如下1)对源图像进行高斯平滑以消除图像中噪声2)采用差分法近似计算图像每一个像素的梯度,并计算梯度的模值和方向3)对梯度进行"非极大抑制":图像边缘点梯度值通常在梯度方向...原创 2018-11-01 21:42:44 · 1756 阅读 · 1 评论 -
5.4.4 边缘检测-拉普拉斯算子
拉普拉斯算子是一个二阶边缘算子,即梯度的散度。拉普拉斯算子的实现也是通过模板实现。常用的拉普拉斯模板定义如下: 拉普拉斯算子计算图像的二阶导数,对于图像噪声比较敏感。拉普拉斯算子的结果为标量,表示边缘的宽度。但是它常产生双像素宽边缘,而且不能提供方向信息,因此较少直接用于边缘...原创 2018-11-01 22:06:48 · 8248 阅读 · 0 评论 -
5.5 图像滤波(均值、高斯、中值、各项异性滤波)
5.5.1 均值滤波均值滤波是一种经常用到的平滑方法,其对应的模板各个像素的值为1。在VTK中没有直接实现均值滤波的类,但是我们可以通过图像卷积运算来实现。卷积运算通过vtkImageConvolve类实现。通过vtkImageConvolve类,只需要设置相应的卷积模板,便可以实现多种空域图像滤波。下面代码说明了怎样使用vtkImageConvolve类来实现图像的均值滤波://...原创 2018-11-01 22:37:08 · 5907 阅读 · 0 评论 -
5.6.1 快速傅立叶变换(FFT+RFFT)
1.图像频域处理的意义 在图像处理和分析中,经常会将图像从图像空间转换到其他空间中,并利用这些空间的特点进行对转换后图像进行分析处理,然后再将处理后的图像转换到图像空间中,这称之为图像变换。在一些图像处理和分析中通过空间变换往往会取得更有效的结果。图像频域处理是指将图像从图像空间转换到频域空间进行处理的过程。最常用的频域转换是傅里叶变换。傅里叶变换的计算量较大,人们为了提高速度,...原创 2018-11-08 16:38:31 · 9376 阅读 · 0 评论 -
5.6.2 低通滤波器(理想低通+巴特沃斯低通滤波器)
1.低通滤波器低通滤波是将频域图像中的高频部分滤除而通过低频部分。图像的边缘和噪声对应于频域图像中的高频部分,而低通滤波的作用即是减弱这部分的能量,从而达到图像平滑去噪的目的。2.理想低通滤波器最简单的低通滤波器是理想低通滤波器,基本思想是给定一个频率阈值,将高于该阈值的所有部分设置为0,而低于该频率的部分保持不变。理想是指该滤波器不能用电子元器件来实现,但是可以通过计算机来模拟。...原创 2018-11-08 17:24:58 · 14223 阅读 · 0 评论 -
5.6.3 高通滤波(理想高通滤波+巴特沃斯高通滤波)
1.理想高通滤波器高通滤波与低通滤波正好相反,是频域图像的高频部分通过而抑制低频部分。在图像中图像的边缘对应高频分量,因此高通滤波的效果是图像锐化。同样最简单的高通滤波器是理想高通滤波器。通过设置一个频率阈值,将高于该阈值的频率部分通过,而低于阈值的低频部分设置为0。VTK中理想高通滤波的实例如下:/* ******理想高通滤波********** ...原创 2018-11-08 20:21:26 · 29622 阅读 · 0 评论 -
6.1 vtkPolyData数据生成与显示
1.VTK图像处理引言图像数据的应用非常广泛,最贴近日常生活的应用是3D游戏,其中每个角色的模型、场景等都是图形数据。当然,游戏仅仅是图像数据的一个应用点。图形在CAD(计算机辅助设计)、影视、医学、地质、气象数据建模等领域中均有着广泛的应用。vtkPolyData是VTK中常用的数据结构之一,可以表示小到一个点、一条线,达到一个模型、一个场景等。2.vtkPolyData数据生成与显示之...原创 2018-11-08 21:09:11 · 4282 阅读 · 0 评论 -
6.1.2 vtkPolyData数据源讨论与数据创建
1.VTKPolyData源数据总结1之前的实例中,我们利用VTKConeSource源数据创建了一个棱锥。实际上VTK内部提供可以写数据源类来快速获取简单的图形数据。下面给出了最常见的几种VTKPolyData数据源类:2.vtkPolyData数据的创建前面多采用图像或者VTK合成源数据进行讨论。在这里,我们希望深入底层,显示地定义一个点集合和一个单元集合。点集合定义了...原创 2018-11-12 21:41:44 · 476 阅读 · 1 评论 -
5.3.7 图像重采样
图像重采样是指对采样后形成的由离散数据组成的数字图像按所需的像元位置或像元问距重新采样,以构成几何变换后的新图像。重采样过程本质上是图像恢复过程,它用输入的离散数字图像重建代表原始图像二维连续函数,再按新的像元间距和像元位置进行采样。其数学过程是根据重建的连续函数(曲面),用周围若干像元点的值估计或内插出新采样点的值。图像重采样在图像处理中应用非常广泛,如SIFT特征提取。图像重采样后图像的维数会...原创 2018-07-04 15:24:15 · 7084 阅读 · 0 评论 -
5.3.6 直方图统计
1、灰度图像直方图统计直方图统计是图像处理中的一个非常重要的操作。VTK中实现直方图统计功能的filter是vtkImageAccumulate。其将每个组分的数值范围划分为离散的间隔,然后统计每个灰度间隔上的像素数目。vtkImageAccumulate输入和输出都是vtkImageData类型,因此直方图也可以看做是一幅图像;对于输入图像的像素数据类型可以是任意的,但是最大支持3个组分像素类型...原创 2018-06-19 17:13:03 · 9154 阅读 · 2 评论 -
vtk光照、颜色、相机、坐标系统及空间变换
vtkLight常的方法有:SetColor() — 设置光照的颜色,以RGB的形式指定颜色。SetPosition() — 设置光照位置。SetFocalPoint() — 设置光照焦点。SetIntensity() — 设置光照的强度。SetSwitch() / SwitchOn()/ SwitchOff()— 打开或关闭对应的光照。确定相机实际原创 2017-10-24 21:39:34 · 5962 阅读 · 0 评论 -
VTK可视化管线之实现观察者/命令(Observer/Command)设计模式
VTK可视化管线之实现观察者/命令(Observer/Command)设计模式#include"vtkSmartPointer.h"#include"vtkConeSource.h"#include"vtkPolyDataMapper.h"#include"vtkRenderWindow.h"#include"vtkRenderWindowInteractor.h"#include"vtkCame.原创 2018-05-12 22:08:54 · 1418 阅读 · 0 评论 -
VTK可视化管线2
本文是学习笔记,总结实现《VTK图形图像开发进阶》2.4.2小节,并做了简要扩展!#include <vtkSmartPointer.h>#include <vtkStructuredPointsReader.h>#include <vtkRenderer.h>#include <vtkRenderWindow.h>#include <vtkR...原创 2018-05-13 21:33:02 · 369 阅读 · 0 评论 -
VTK图像创建
注:此文知识学习笔记,仅记录完整程序和实现结果,具体原理参见:https://blog.csdn.net/www_doling_net/article/details/8541534#include <vtkSmartPointer.h>#include <vtkImageData.h>#include <vtkImageCanvasSource2D.h>...原创 2018-05-14 17:29:38 · 772 阅读 · 0 评论 -
5.2.3 图像融合代码及运行结果
vtkImageBlend:处理一个窗口中显示多个图像(图像融合技术),接收多个图像输入,输出为融合图像。注:此文知识学习笔记,仅记录完整程序和实现结果,具体原理参见:https://blog.csdn.net/www_doling_net/article/details/8541534#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRend...原创 2018-06-02 21:57:48 · 5672 阅读 · 0 评论 -
VTK图像显示
#include"vtkSmartPointer.h"#include"vtkMetaImageReader.h"#include"vtkImageViewer2.h"#include"vtkRenderer.h"#include"vtkRenderWindow.h"#include"vtkRenderWindowInteractor.h"//vtkImageViewer2封装原创 2018-05-22 20:18:28 · 1732 阅读 · 0 评论 -
5.3.1 VTK图像基本操作(图像信息的访问与修改)
注:此文知识学习笔记,仅记录完整程序和实现结果,具体原理参见:https://blog.csdn.net/www_doling_net/article/details/85415341.vtkImageData实现图像信息的访问与修改vtkImageData提供了多个函数用于访问或者获取图像的基本信息,这些函数通常使用Set或者Get加上相应 的信息名的形式,列如获取图像维数的方法定义为GetDi...原创 2018-06-03 17:34:00 · 1358 阅读 · 0 评论 -
5.3.2 VTK图像基本操作(图像像素值的访问与修改)
注:此文知识学习笔记,仅记录完整程序和实现结果,具体原理参见:https://blog.csdn.net/www_doling_net/article/details/85415341、直接访问图像像素(索引法)#include"vtkSmartPointer.h"#include"vtkImageData.h"#include"vtkBMPReader.h"#include"vtkImag...原创 2018-06-05 22:21:37 · 2043 阅读 · 0 评论 -
5.3.3 图像类型转换
注:此文知识学习笔记,仅记录完整程序和实现结果,具体原理参见:https://blog.csdn.net/www_doling_net/article/details/85415341.vtkImageCast这个类进行类型转换时,只是将类型进行强制转换,而没有进行比例的缩放,因此使用起来会比较受限,因此VTK中时不推荐使用这个类的,例如一副double类型的图像,图像值的范围[-1,1]。如果需...原创 2018-06-06 15:18:18 · 303 阅读 · 0 评论 -
5.3.4 图像颜色映射 (一)
注:此文知识学习笔记,仅记录完整程序和实现结果,具体原理参见:https://blog.csdn.net/www_doling_net/article/details/85415341、vtkImageLuminance负责将一个RGB彩色图像转换为一个单组分的灰度图像。映射公式如下:luminance = 0.3*R + 0.59*G + 0.11*B该公式中,R为输入图像的第一分量(红色),G...原创 2018-06-07 15:41:47 · 3823 阅读 · 0 评论 -
5.3.4 图像颜色映射 (二)
注:此文知识学习笔记,仅记录完整程序和实现结果,具体原理参见:https://blog.csdn.net/www_doling_net/article/details/8541534https://blog.csdn.net/shenziheng1/article/category/6114053/43、灰度图像映射成伪彩色图像(查表法 vtkLookUpTable)图像彩色映射的原理是首先生成一...原创 2018-06-07 20:39:01 · 6361 阅读 · 1 评论 -
5.3.5.2-3 三维图像切面提取+扩展
1、三维图像切面提取切片是指三维图像中的一个切面对应的图像。切面可以是过图像内部一点且平行于XY、YZ、XZ平面的平面,也可以是任意的过三维图像内部一点任意方向的平面。通过提取切片可以方便的浏览和分析图像内部组织结构,是医学图像浏览软件中的一个重要的功能。在VTK中vtkImageReslice类实现图像切片提取功能。//实现结果显示空白,后续有待研究解决#include <vtkSmar...原创 2018-06-17 17:03:32 · 3483 阅读 · 8 评论 -
5.3.5 区域提取
注:此文知识学习笔记,仅记录完整程序和实现结果,具体原理参见:https://blog.csdn.net/www_doling_net/article/details/8541534https://blog.csdn.net/shenziheng1/article/category/6114053/4vtkExtractVOI:感兴趣区域(Volum of Interest,VOI)是指图像内部的...原创 2018-06-10 17:24:18 · 629 阅读 · 0 评论 -
6.1.3 vtkPolyData 属性数据
1、图形着色前一个实验显示结果中的图像是白色的,而图形颜色与vtkPolyData属性数据息息相关。由于并未指定任何颜色和属性数据,因此在显示时默认以白色显示。属性数据包括点属性和单元属性。可以为vtkPolyData的点数据和单元数据分别指定属性数据。属性数据可以是标量,如点的曲率;可以是向量,如点或者单元的法向量;也可以是张量,主要在流场中较为常见。颜色可以直接作为一种标量属性数据,设...原创 2018-11-24 13:17:24 · 8897 阅读 · 1 评论