自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 论文阅读-超分-ProGanSR

作者设计了一个生成对抗性网络(GAN)命名为ProGanSR,它遵循相同的渐进多尺度设计原则。这不仅可以从低到高的上采样因子(x8),而且构成了一个原则多尺度方法,同时提高上采样因素的重建质量。这种模型的运算速度快。高分辨率显示器的广泛使用和基于深度学习的图像处理的快速发展最近引发了人们对超分辨率的兴趣,特别是对单图像超分(SISR)通过学习从LR到HR的映射,取得了令人印象深刻的成果。分辨率图像的基础上的数据。

2023-03-18 15:19:02 568 2

原创 VTK-VtkCamera使用原理

VTK

2022-06-16 18:21:05 1106

原创 VTK:Pipeline管线执行模型

VTK

2022-06-04 09:48:37 552

原创 VTK:VTK管线机制——信息对象类VTKInformation

VTK

2022-06-03 19:49:19 797

原创 VTK : vtkObject类深入分析

VTK

2022-06-02 11:02:37 254

原创 VTK:智能指针与引用计数

1.引用计数内存关管理在大型的工程中是非常重要的内容,如果不能有效的管理内存,将严重影响到应用程序的执行效率,甚至可能造成程序崩溃。在之前学过的C++中,使用new操作符申请的空间,用delete来释放。C++中并没有提高的内存管理与回收机制,通常进行手动管理。这对于简单的程序而言可以轻松完成,但是对于大型程序就不能应对。例如当一块内存块被多个对象引用时,删除任意一个对象,都可能影响其他对象,引用计数和智能指针刚好可以解决这个问题。引用计数:简单来说,引用计数就是每个对象中维护一个引用计数的变量,表

2022-06-02 10:11:10 620

原创 VTK:交互与拾取——单位拾取

1.单位拾取下面的代码#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2)VTK_MODULE_INIT(vtkInteractionStyle)VTK_MODULE_INIT(vtkRenderingFreeType)#include <vtkSmartPointer.h>#include <vtkSphereSource.h>#include <vtkPolyDataMappe

2022-05-28 17:32:23 637

原创 VTK:交互与拾取——点拾取

1.拾取拾取最经典的例子就是,在玩3D游戏时,场景中可能会存在多个角色,有时候需要用鼠标来选择所要控制的角色,这时候要用到拾取功能。另外,在某些三维图形图形的编译软件中,经常需要编辑其中的一个点,一个片面或者一个局部区域,这也需要通过拾取功能来完成。多个拾取功能:VTK中所有的拾取类都继承自vtkAbstractPicker类,在这些类的基础上可以实现非常复杂的功能。2.点拾取完成点拾取功能的类是vtkPointPicker。vtk中的消息是通过vtkRenderWindowIntera

2022-05-28 10:02:57 3460 4

原创 VTK:交互部件——分割/配准类Widget与其他Widget

1.分配、配准交互部件图像分割与配准是数字图像处理技术量大主要的应用领域,特别是在医学图像处理中。著名的医学图像分割与配准工具包ITK(Insight Segmentation & Registration Toolkit)的重要应用领域就是图像分割与配准。ITK实现了许多经典的分割、配准算法,但是不提供可视化功能,因此,在应用中一般都会和VTK一起使用。由VTK负责分割、配准等数据处理,其处理结果用VTK进行显示。提倡使用VTK交互的Widget,从用户的交互过程中获取所需要的数据,并向ITK

2022-05-21 22:13:02 741

原创 VTK:交互部件——标注类Widget的应用

1.标注类Widget在可视化程序中,经常会对某个对象做一些标注说明。比如,在医学图像诊断中,常常会手动标注出被诊断为肿瘤的区域或者其他病变区域,并用文字进行标注。VTK中,与标注相关的Widget如下表所示:vtkTextWidget:在渲染场景中生成一串标识文本,可以随意调整该文本在渲染场景中的位置,缩放其大小等。vtkScalarBarWidget:根据输入的数据在渲染场景中生成一个标量条,通过设置颜色查找表,可以用标量条上的颜色来指示输入的数据。渲染场景中的标量条可以随意移动、改变大小

2022-05-21 20:49:47 882 1

原创 VTK:交互部件——测量类Widget的应用

1.与测量类相关的主要Widget与测量类相关的主要Widget如下:vtkDistanceWidget:用于在二维平面上测量两点之间的距离。vtkAngleWidget:用于在平面的角度测量。vtkBiDimensionalWidget:用于测量二维平面上任意两个正交方向的轴长。2.创建用于测量距离的Widget应用实例创建Widget的一般步骤:1.实例化Widget;2.指定渲染窗口交互器。Widget可以通过它来监听用户事件。3.必要时使用观察者/命令模式创建回调函数。

2022-05-20 17:55:07 1365

原创 VTK:交互部件——Widget的创建

1.创建Widget交互的步骤实例化Widget。指定渲染窗口交互器。Widget可以通过它来监听用户事件。必要时使用观察者/命令模式创建回调函数。与Widget交互时,它会调用一些通用的VTK事件(94个事件列表),如StartInteractionEvent、InteractionEvent、EndInteractionEvent。用户通过监听这些事件作出响应,从而可以更新数据、可视化参数或者应用程序的用户界面创建合适的几何表达实体。并用SetRepresentation()函数把他与Widg

2022-05-19 18:03:02 746

原创 VTK:交互部件——Widget应用综述

1.交互器样式遇到的问题交互器样式(vtkInteractorStyleImage)主要是根据不同的键盘、鼠标等消息来控制相机。(vtkCamera)/Actor等相关的参数,从而达到交互的目的。

2022-05-19 17:31:37 942

原创 VTK:交互与Widget——观察者/命令模式

1.绪论一个强大的可视化系统不仅需要强大的数据处理能力,也需要方便易用的交互功能。图形处理软件ParaView、德国癌症研究中心研发的MITK等开源软件系统都提供了强大的交互功能。VTK的交互功能除了可以监听来自鼠标、键盘等外部设备的消息,还可以在渲染场景中生成功能各异的交互部件(Widget),用于控制可视化过程的参数,达到用户的渲染要求。2.观察者/命令模式1.观察者/命令者是VTK里用比较多的设计模式。VTK中绝大多数的类都派生自vtkObject。查看类vtkObject的接口可以找到

2022-05-18 22:23:05 719

原创 VTK:体绘制——光照&阴影、VTKLODProp3D

1.光照和阴影通过VTKVolumeProperty可以设置体绘制阴影效果(Shading)。阴影效果主要受环境光系数、散射光系数、反射光系数和高光强度四个参数影响。vtkVolumeProperty::SetAmbient()设置环境光系数vtkVolumeProperty::SetDiffuse()设置散射光系数vtkVolumeProperty::SetSpecular()设置反射光系数一般情况下,三个系数的和应该为1.但是有时候,在体绘制过程中为了提高亮度,三个值之和会大于1.另外,

2022-05-17 19:44:54 1152

原创 VTK:体绘制——颜色传输函数

1.颜色传输函数颜色传输函数与不透明度传输函数的使用类似,二者的不同之处在于颜色传输函数是将一个标量值映射为颜色值。这个颜色值可以是RGB值,也可以是HSV值。VTK颜色传输函数采用VTKColorTransferFunction类实现,其函数为:int AddRGBPoint(double x,double r,double g, double b); int AddHSVPoint(double x,double h,double s,double v);这样就可以实现一个RGB断点或者HSV

2022-05-17 15:54:20 889

原创 VTK:体绘制——梯度不透明度传输函数

1.梯度不透明度函数梯度不透明度函数是将梯度模值映射为一个不透明度乘子,从而增强过渡区域的显示效果。该函数也是使用vtkPiecewiseFunction类。例如,在不同材料的临界区域,如空气到软组织,或者软组织到骨头的临界区,梯度值会比较大,而材料的内部梯度值则会相对比较小。vtkVolumeProperty中通过如下函数设置和获取梯度不透明度函数:void SetGradientOpacity(vtkPiecewiseFunction* function);vtkPiecewiseFunct

2022-05-17 15:24:12 845

原创 VTK:体绘制——不透明度传输函数

1.vtkVolumevtkVolume类似于几何渲染中的vtkActor,用于表示渲染场景中的对象。除了存储基本变换信息(平移、旋转、缩放等),其内部还存储了两个重要对象。这两个对象分别是vtkAbstractVolumeMapper对象和vtkVolumeProperty对象。void SetMapper(vtkAbstractVolumeMapper* mapper);该函数用于连接vtkAbstractVolumeMapper对象,并根据不同的体绘制算法获取其内部生成的图元数据。具体的体

2022-05-17 13:34:02 914

原创 VTK:体绘制裁剪——Clipping技术

1.基于Clipping的体绘制裁剪技术Clipping技术支持VTKImageData和VTKUntructuredGrid数据类型。该功能由vtkAbstractMapper3D提供,对于那些使用基于OpenGL的硬件裁剪技术的Mapper类,如vtkPolyDataMapper、vtkVolumeTextureMapper2D、VTKProjectedTetrahedraMapper等,当设置的裁剪面个数超过OpenGL支持的个数(一般为6)时,VTK会反馈一个错误;而对于基于软件的裁剪技术的Ma

2022-05-16 22:36:03 622

原创 VTK:体绘制裁剪——Cropping技术

1.裁剪对于一些体积较大,结果比较复杂的体绘制的渲染效果一展示其内部细节,需要用到裁剪技术来渲染部分数据。vtkVolumeMapper类中提供两种裁剪技术分别是Cropping和Clipping。Cropping技术只支持VTKImageData数据的裁剪。该方法在每个坐标轴上定义两个裁剪面,共有6个裁剪面。将三维空间分为27个可视区域。这些裁剪面仅与数据的原点和像素尺寸有关,而不依赖数据的任何坐标运算,因此可以使用27位数字来定义这些区域,每一位表示一个区域。在这些区域中,小于(xmin,ymin

2022-05-16 22:02:36 648

原创 VTK:纹理映射体绘制——三维纹理映射

1.三维纹理映射利用三维纹理映射,将体数据映射至一组与视图平面平行的多边形,避免了二维纹理映射方法中因为纹理映射的切换造成的瑕疵。。VTK中三维纹理映射体绘制方法由vtkVolumeTexture3D类实现,使用方法与二维纹理映射体绘制方法一致。#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL2);VTK_MODULE_INIT(vtkRenderingVolumeOpenGL);VTK_MODULE_INIT(v

2022-05-16 21:03:01 723

原创 VTK:纹理映射体绘制_二维纹理映射

1.纹理映射体绘制基于软件实现的光线投影体绘制算法计算量非常大,不利于进行实时渲染。因此,目前体绘制经常使用图形硬件利用纹理映射来加速。其主要原理是将三维体数据作为纹理装载入硬件缓存中,利用硬件来实现插值以及图像合成操作,以提高绘制效率。基于图形硬件三维纹理功能的体绘制技术,主要是利用硬件的三线性过滤插值能力,通过渲染多个与视线垂直的面片来重建整个三维结构。每个面片利用三维纹理来决定颜色和透明度。这种方法得到的效果从本质上讲与光线投影的效果相同。最新的方法可以直接利用三维纹理在图形硬件上实现光线投影的算

2022-05-16 20:32:36 442

原创 VTK:体绘制——固定点光线投影体绘制与GPU加速光线投影体绘制

1.固定点光线投影算法vtkFixedPointVolumeRayCastMapper是一个较好的vtkVolumeRayCastMapper的替代者。该类能够实现基于Alpha合成的体绘制方法和最大密度投影体绘制方法,能够支持任意类型或者独立多元数据。例如,当输入为二元独立数据时,第一源数据用于颜色映射,而第二元作为不透明度映射。该类使用了空间跳跃技术来加速体绘制的渲染过程,而在内部计算时,统一使用了float数据类型。vtkFixedPointVolumeRayCastMapper与vtkVol

2022-05-16 12:49:17 855 3

原创 VTK:体绘制——光线投影+最大密度投影+等值面法

1.vtkVolumeMappervtkVolumeMapper是所有体绘制Mapper类的虚基类,提供接口函数,并由其子类实现具体功能。该类的继承关系如下:2.光线投射:vtkVolumeRayCastMapper光线投投射法是最常用的体绘制方法。它是一种基于图像序列的直接体绘制方法。光线投影法的基本原理是从投影图像平面(通常为平面)的每个像素沿着视线方向发射一条穿过体数据的射线,然后在射线上按照一定的步长进行等距离采样,对每个采样点采用插值技术来计算其体素值,根据颜色传输颜色传输函数和不透

2022-05-15 20:43:48 1038

原创 VTK:体绘制——体绘制管线&图形渲染管线

1.几何渲染与体绘制几何渲染:就是通过绘制几何图元(顶点、线段、面片等)来渲染数据,例如绘制图像需要在空间中建立一个四边图元,然后以纹理映射的方式将该图像贴图到该图元上进行渲染;而三维模型的绘制通常会分解为一系列的多边面片进行绘制。这种通过生成中间几何图元来进行渲染的方法称为几何渲染。几何渲染的速度比较快,但是不能显示数据的内部细节。例如:在渲染人的三维CT体数据时,通过几何渲染只能在切片图像之间进行切换,而不能进行切换,而不能对体数据内部细节进行立体观察。体绘制:又称为三维重建(区别于投影图像的三维

2022-05-12 22:45:13 846

原创 VTK:图形基本操作进阶——纹理映射

1.纹理映射纹理映射是将纹理空间中的纹理像素映射到屏幕空间中的像素过程。纹理生成过程实质上是将所定义的纹理映射为某种三维物体表面的属性,并参与后续的光照计算。在三维图形中,纹理映射应用的十分广泛,尤其是描述具有真实感的物体。实现纹理映射主要是建立纹理空间与模型空间、模型空间与屏幕空间之间的映射关系,如下图所示其 中纹理空间可以定义为u-v空间,每个坐标轴的范围为(0,1)。对于一个纹理图像,其左下角的坐标为(0,0),右上角(1,1)。而对于简单的参数模型,可以方便地建立模型与纹理空间的映射关系,

2022-05-12 21:43:47 794

原创 VTK:图形基本操作进阶——点云配准技术(迭代最近点ICP算法)

1.Interative Closest Points算法点主句配准最经典的算法是迭代最近点算法。ICP算法是一个跌代的过程,每次迭代中对于源数据点P找到目标点集Q中的最近点,然后给予最小乘原理求解当前的变换矩阵T。通过不断迭代直至收敛,即完成了点集的配准。1.1基本原理ICP算法是大多数点云配准的心,它是一个点对刚性算法。基本思想是:假设两个点集P...

2022-05-12 17:43:28 1152

原创 VTK:图形基本操作进阶——点云配准技术(LandMark标记点算法和坐标系显示方法)

1.点配准在计算机逆向工程中,通过三维扫描等实物数字化技术可以获取各种点云数据。但是受到测量环境和设备的影响,再一次测量的情况下,难以获得实物整体的点云数据,因此需要多次从不同的角度进行测量。但是不同测量数据之间可能会存在平移错误或旋转错位等问题。这就是使用点云配准技术来对测量点云数据进行局部配准的整合,以得到完整的模型数据。另外,在外科手术导航技术中,图像标记技术与人体表面标记点的配准是一个关键步骤,对于手术定位的精度有着重要的影响。通常这需要使用基于标记点的配准技术。因此,点云配准及时对一组源云数

2022-05-11 23:01:22 1808

原创 VTK:图形基本操作进阶——表面重建技术(三维点云曲面重建)

1、点云重建虽然Delaunay三角部分算法可以实现网格曲面重建,但是其应用主要在二维部分,在三维空间网格生成中遇到了问题。因为在三维点云曲面重建中,Delaunay条件不在满足,不仅基于最大最小判断的对角线准则不成立,而且基于外接圆判据的Delaunay三角化也不能保证网格质量。VTKSurfaceReconstructionFilter则实现一种隐式曲面重建的方法,即将曲面看做一个符号距离函数的等值面,曲面内外的距离值得符号相反,而零等值面即为所求的曲面。该方法需要对点云数据进行网格划分,然后估算每

2022-05-11 17:29:48 3391 3

原创 VTK:图形基本操作进阶——表面重建技术(等值面提取)

1.等值面提取等值面(线)提取是一种常用的可视化技术,常应用于医学、地质、气象等领域。例如,在医学图像处理中,由于CT、MRI等图像分辨率越来越高,虽然体绘制技术可以清晰地对数据内部结构进行可视化,但是其计算量和效率却制约了其使用。此时可通过等值面提取技术,仅提取感兴趣的一个或者几个组织轮廓,并生成网格模型以供后续的处理和研究。根据数据类型的不同,VTK中提供了多个等值面提取类,其类图如图所示:VTK中的等值面提取算法多基于MarchingCube算法来实现。MarchingCube是经典的移动立方

2022-05-11 16:42:38 1805 1

原创 VTK:图形基本操作进阶——表面重建技术(三角部分)

1.表面重建通过三维扫描仪所获取的实际物体的空间点云数据仅仅表示物体的集合形状,而无法表达其内部的拓扑结构。拓扑结构对于实际图形处理以及可视化具有重要的意义。因此,这就需要利用表面重建技术将点云数据转换成面模型,通常为三角网络模型。除此之外,基于图像数据的面绘制技术也是一种应用非常广泛的表面重建技术。vtk中实现三角剖分技术三角剖分技术是一种应用非常广泛的面重建技术。三角剖分将一些散乱的点云数据剖分为一系列的三角形网格。最常用的三角剖分技术为Delaunay三角剖分。Delaunay三角剖分具有许多

2022-05-11 15:14:22 2116

原创 VTK:图形基本操作进阶——多分辨率策略(模型细化的三种方法)

1.模型细化上图是网格细化的三种类,分别是:vtkLinearSubdivisionFilter、vtkLoopsubdivisionFilter、vtkButterflySubdivisionFilter。这三个类都继承自vtkInterpolatingSubdivisionFilter。vtkInterpolatingSunvisionFilter内部提供了SetNumberOfSubvisions()函数来设置细化的次数,其中每次细化后模型的三角面片的个数将是细化前的四倍。因此,在对网格模型进行

2022-05-11 10:47:38 832

原创 VTL:图形基本操作进阶——多分辨率策略(模型抽取的三种方法)

1.多分辨率处理策略模型抽取Decimation)和细化(Subdivision)是两个相反的操作,是三角形网格模型多分辨率处理中的两个重要的操作。使用这两个操作可以在保持模型拓扑结构的同时,得到不同分辨率的网格模型。模型抽取的作用是剑豪模中的点数据和单元数据,便于模型的后续处理与交互渲染,这类似于图像时数据的将采样。而网格细化则是利用一定的细化规则。而网格细化则是利用一定的细化规则,在给定的初始化网格中插入新的点,从而不断细化出新的网格单元,在极限细化情况下,该网格能够收敛一个光滑的曲面。2.网

2022-05-11 10:03:04 514

原创 VTK:图形基本操作进阶——连通区域分析

1.连通区域分析许多图形数据中,并非只包含一个对象(连通区域)。而在处理这些图形数据时,有时需要对每一个对象单独处理或者让其单独显示。比如,利用MarchingCube方法提取三维图像中的 等值面,得到的结果往往是存在多个连通的对象区域,这就是需要对图形数据进行连通分析,提取每个联通区并计算其属性信息,以此来得到需要的连通区域。下面的例子中构造了一个含有多个连通区域的梦想数据。vtkAppendPolyData可以实现vtkPolyData的合并,使用该类可以方便的构造多个连通区域的数据,该类型接受

2022-05-10 16:42:52 1096

原创 VTK:图像基本操作进阶——网格模型的特征边与封闭性检测

1.封闭性检测由于受源数据、重建方法的限制,得到的网格模型并不是封闭的。有时候为了显示或者处理某些需求,需要网格必须是封闭的。封闭性网格应该比较好理解,比如一个球面网格。上节提到边界边的概念;如果一条边只被一个多边形包含,那么这条边就是边界边。是否存在边界边是检测一个网格模型是否封闭的重要特征。vtkFeatureEdges是一个非常重要的类,该类能够提取多边形网格模型中四种类型的边。边界边:只被一个多边形或者一条边包围的边。非流性边:被三个火三个以上多边形包围的边。特征边:需要设置一个特

2022-05-10 15:56:12 954

原创 VTK:图形基本操作进阶——网格平滑

1.网格平滑现代扫描技术的发展使得获取点云数据不再困难,通过曲面重建技术可以获取表面网格来表示各种复杂的实体。但是点云数据中往往存在噪声,这样得到的重建网格通常都需要进行平滑处理。拉普拉斯平滑是一种常见的网格平滑算法。该方法的原理比较简单。将每个点用邻域点的中心来代替。通过不断地迭代,可以得到交为光滑的网格。代码#include "vtkAutoInit.h" VTK_MODULE_INIT(vtkRenderingOpenGL2);VTK_MODULE_INIT(vtkInteracti

2022-05-08 19:48:36 1444

原创 VTK:图形基本操作进阶——符号化操作与模型

1.符号化Glyphing再谈符号化操作显示单元的法向量。模型的法向量数据是向量数据,因此法向量不能像前面讲到的通过颜色映射来显示。但是可以通过符号化技术将法向量图形化显示。Glyphing是一种基于图形的可视化技术,这些图像可以是简单的基本图形,如具有方向的椎体,也可以是更加复杂的图像。VTK中就是应用vtkGlyph3D类实现该功能,并且可以支持Glyphing图形的缩放、着色、设置空间姿态等。使用该类时,需要接受两个输入:一个是需要显示的几何数据集合;另一个是Glyph图形数据,为vtkPol

2022-05-08 19:01:04 530

原创 VTK:图形基本操作进阶——法向量计算

1.点法向量和单元法向量三维平面是指垂直有该平面的三维向量。曲面在某点P处的法向量为垂直于点切面的向量。对于一个网格模型,其每一个点和单元都可以计算一个法向量,在三维计算机图形学中法向量一个重要的应用是光照和阴影的计算。对于网格模型,模型是有一定的面片(单元来逼近的),面片越多,则模型越精细;反之,越粗糙。在计算网络模型的法向量时,单元法向量计算比较简单,可以通过组成每个单元的任意两条叉乘向量并归一化来表示。对于点的法向量是由所有使用该点的单元法向量的平均值来表示。VTK中计算法向量的Filter是v

2022-05-08 14:43:57 2169

原创 VTK:图sing基本操作进阶——三角网络体积、表面积、测地距离、包围盒

1.基本图形操作意义图形处理,比如图形平滑、多分辨率分析、特征 提取等都离不开一些基本的图形操作。掌握这些基本的图形操作有助于理解和深入学习图形处理和分析方法。VTK中提供了多种图形的基本操作,其中最简单的是点的欧式距离计算,可以使用VTKMath进行计算,也可以直接计算向量的模。一些图元类提供许多可以方便使用的静态函数,vtkLine提供了点与线间的距离计算;vtkTriangle提供了面积、外接圆、法向量的计算,点与三角形位置关系判断等;vtkTetra中实现了四面体积,重心计算等。有了这

2022-05-07 20:32:19 597

原创 VTK:图形进阶——VTKPolyData属性数据

1.从图形着色说起上一个实验显示的结果中的图像时拜森扥,而图形颜色与vtkPolyData属性数据息息相关。由于并未指定任何颜色和属性数据,因此在显示时默认以白色显示。属性数据包括点属性和单元属性。可以为vtkPolyData的点数据和单元数据分别指定属性数据。属性数据可以是标量,如点的曲率;可以是向量,如点火者法向量;也可以是张量,主要在流畅中比较常见。颜色可以直接作为一种标量属性数据,设置到相应的点或者单元数据中,这也是最直接的一种图形着色方式。下述代码继承上一节中的VTKPolyData数据

2022-05-07 16:41:39 1664

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除