- 博客(218)
- 资源 (16)
- 收藏
- 关注
原创 VTK——自定义二维图像涂抹Widget(支持任意值涂抹),擦除,恢复。vtkCustomPaintWidget
VTK——自定义二维图像涂抹(支持任意值涂抹)
2022-08-23 10:29:27
312
原创 VTK——自定义三维裁剪Widget,恢复Widget(任意形状,圆形,矩形裁剪)vtkCustomPaintWidget
vtk自定义裁剪widget
2022-08-23 09:58:22
351
2
原创 VTK——可拖动的坐标轴MovableAxesWidget
自己实现的vtk交互效果,可以沿着轴(x,y,z)平移,沿着轴旋转,沿着平面平移,用于和双击选中的actor进行交互圆上的箭头是自定义的source,如下图:
2022-03-01 17:54:32
617
原创 vtk ImageInfo
//测试#include <vtkSmartPointer.h>#include <vtkImageData.h>#include <vtkMetaImageReader.h>#include <vtkMatrix4x4.h> //#include <vtkImageReslice.h>#include <vtkLookupTable.h>#include <vtkImageMapToColors.h>#i.
2021-08-18 09:37:18
62
原创 vtk Transform Matirx
#include <vtkLineSource.h>#include <vtkPolyData.h>#include <vtkSmartPointer.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderWindow.h>#include <vtkRenderer.h>#include <vtkRenderWind
2021-08-18 09:35:19
295
原创 Azure DevOps Server 2019 (TFS)安装教程
(1)安装教程:https://www.cnblogs.com/danzhang/p/10080190.htmlhttps://blog.csdn.net/playermaker57/article/details/86760673(2)设置用户:(3)设置仓库权限:添加下面位置,成员可以创建仓库。设置下面位置,成员对仓库没有访问权限。...
2021-03-26 16:17:43
455
1
原创 itk中的数据孔洞填充
itk提供了两个的补洞类:itkGrayscaleFillholeImageFilter(针对灰度图像), itkBinaryFillholeImageFilter(针对二值图像)具体用法不要太简单:typedef itk::GrayscaleFillholeImageFilter<ImageType,ImageType> FillHoleType;//typedef itk::BinaryFillholeImageFilter<ImageType,ImageType>
2021-03-25 14:41:29
326
原创 itk中的基本数学运算(加减乘,与或非,腐蚀膨胀开闭)
//1、加,减,乘(注意,没有除哦)#include "itkAddImageFilter.h"//加#include "itkSubtractImageFilter.h"//减#include "itkMultiplyImageFilter.h"//乘 typedef itk::AddImageFilter <ImageType, ImageType > mathFilterType;mathFilterType::Pointer mathFilter = mathFilterT.
2021-03-25 14:16:23
468
原创 itk中的基本图像操作
遍历图像//1、创建图像ImageType::Pointer mask_data= ImageType::New();//2、创建一个与image_data等大的mask图像ImageType::PointType origin_temp = image_data->GetOrigin();ImageType::SpacingType spacing_temp = image_data->GetSpacing();ImageType::RegionType inputRegion
2021-03-25 14:02:11
254
原创 conan使用(二)--conan环境搭建
从 C++ 诞生至今已经走过了几十个年头,如今越来越多的语言诞生在世界上,受到大众追捧;一些同样古老的语言在历经脱胎换骨般的发展后也迎头赶上,变得无所不能。可以看到 C/C++ 所擅长的领域正在被一点点地分割,它们的地盘正在不断地被蚕食。C++ 排名的逐步下降,除了其 Core Language 越来越复杂以外,其生态过于零碎也是一个非常大的问题。一个非常普遍的现象,C/C++ 项目如果要依赖第三方库,往往有 N 种姿势来完成这个事情:直接在源码中包裹第三方库的头文件和二进制 把第三方库的
2020-10-13 15:51:13
6971
1
原创 conan依赖管理使用方法
简述C++程序的依赖管理是一个由来已久的问题, 仅在Windows上就有程序就有Visual Studio, MinGW等多种编译器, 即使是Visual Studio下编译的结果的也有静态库, 动态库, x86,x86_x64程序之分, 针对运行和调试环境有Debug和Release2种配置, 还有MD和MT这样的动态库依赖方式之分, 仅仅针对一个库的一个版本可能产生多种编译结果, 开发团队为了自己需要会针对不同配置把一种库编译多次, 库文件的存储和管理都成问题.为了简化SOUP依赖库的管理, 为
2020-10-13 15:45:17
3151
原创 Opnecv_遍历Mat
opencv图像数据是BGR的顺序,其它的通常为RGB的顺序。The efficient wayMat& ScanImageAndReduceC(Mat& I, const uchar* const table){ // accept only char type matrices CV_Assert(I.depth() == CV_8U); ...
2020-04-02 13:15:03
129
原创 Opencv_Mat操作
Mat理解:Mat头和数据区域浅复制:Mat A, C; // creates just the header partsA = imread(argv[1], IMREAD_COLOR); // here we'll know the method used (allocate matrix)Mat B(A); ...
2020-04-02 11:40:28
135
原创 Qt事件event总结
现在我们可以总结一下 Qt 的事件处理,实际上是有五个层次:重写 paintEvent()、mousePressEvent() 等事件处理函数。这是最普通、最简单的形式,同时功能也最简单。 重写 event() 函数。event() 函数是所有对象的事件入口,QObject 和 QWidget 中的实现,默认是把事件传递给特定的事件处理函数。 在特定对象上面安装事件过滤器。该过滤器仅过滤该...
2020-04-01 16:58:08
293
原创 Qt总结_再谈:Qt5信号和槽_Qt4信号和槽
有重载的信号如果信号有重载,比如我们向 Newspaper 类增加一个新的信号:void newPaper(const QString &name, const QDate &date);此时如果还是按照前面的写法,编译器会报出一个错误:由于这个函数(注意,信号实际也是一个普通的函数)有重载,因此不能用一个取址操作符获取其地址。回想一下 Qt 4 中的处理。在...
2020-04-01 15:10:39
217
原创 Qt总结_Qt5信号和槽_Qt4信号和槽对比分析
在对于重载的信号中,Qt4信号和槽表达优于Qt5信号和槽,Qt5信号和槽兼容Qt4信号和槽兼容。所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面。在放置时,组件的位置尤其重要。我们必须要指定组件放在哪里,以便窗口能够按照我们需要的方式进行渲染。这就涉及到组件定位的机制。Qt 提供了两种组件定位机制:绝对定位和布局定位。...
2020-03-31 17:07:55
737
1
原创 Qt总结_对象模型_组件parent的理解
标准 C++ 对象模型在运行时效率方面卓有成效,但是在某些特定问题域下的静态特性就显得捉襟见肘。GUI 界面需要同时具有运行时的效率以及更高级别的灵活性。为了解决这一问题,Qt “扩展”了标准 C++。所谓“扩展”,实际是在使用标准 C++ 编译器编译 Qt 源程序之前,Qt 先使用一个叫做 moc(Meta Object Compiler,元对象编译器)的工具,先对 Qt 源代码进行一次预处理(...
2020-03-31 16:46:29
357
原创 Qt总结
(1)app的生命周期长于 组件的 的生命周期。否则这可是 Qt 编程的大忌,下面是错误的例子。#include <QApplication>#include <QLabel> int main(int argc, char *argv[]){ QApplication app(argc, argv); QLabel *label = n...
2020-03-31 15:59:28
152
原创 VTK_Learning_VTK开发理论汇总
一、VTK开发基础_智能指针与引用计数https://blog.csdn.net/shenziheng1/article/details/54974101二、VTK开发基础_vtkObject类深入分析https://blog.csdn.net/shenziheng1/article/details/54983626三、VTK管线机制_信息对象类VTKInformati...
2020-03-13 11:37:37
161
原创 VTK_Learning_交互与拾取_单位拾取
1.单位拾取示例代码:#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL)VTK_MODULE_INIT(vtkInteractionStyle)VTK_MODULE_INIT(vtkRenderingFreeType) #include <vtkSmartPointer.h>#inc...
2020-03-13 11:06:05
404
1
原创 VTK_Learning_交互与拾取_点拾取
1.拾取选择拾取是人机交互过程的一个重要功能。一个最经典的例子就是,在玩3D游戏时,场景中可能会存在多个角色,有时需要用鼠标来选择所要控制的角色,这就要用到拾取功能。另外,在某些三维图形的编辑软件中,经常需要编辑其中的一个点、一个面片或者一个局部区域,这也需要通过拾取功能来完成。VTK中定义了多个拾取功能的类,具体的继承关系如下:VTK中所有的拾取类都继承自vtkAbstrac...
2020-03-13 11:03:10
361
原创 VTK_Learning_交互部件_分割/配准类Widget与其他Widget
1.分割/配准交互部件图像分割与配准是数字图像处理技术两大主要的应用领域,特别是在医学图像处理中。著名的医学图像分割与配准工具包ITK(Insight Segmentation & Registration Toolkit)的重要应用领域就是图像分割与配准。ITK实现了许多经典的分割、配准算法,但不提供可视化功能,因此,在应用中一般都会和VTK一起用。由VTK负责分割、配准等数据处...
2020-03-13 10:35:17
193
原创 VTK_Learning_交互部件_标注类Widget的应用
1.标注类Widget在可视化程序中,经常会对某个对象做一些标注说明,比如,在医学图像诊断中,常常会手动标注出被诊断为肿瘤的区域或者其他病变区域,并用文字进行标注。VTK中,与标注相关的Widget如下表所示:vtkTextWidget:在渲染场景中生成一串标识文本,可以随意调整该文本在渲染场景中的位置,缩放其大小等。 vtkScalarBarWidget:根据输入的数据在渲...
2020-03-13 10:30:36
362
1
原创 VTK_Learning_交互部件_测量类Widget的应用
1.与测量类相关的主要Widget与测量类相关的主要Widget如下:vtkDistanceWidget:用于在二维平面上测量两点之间的距离。 vtkAngleWidget:用于在平面的角度测量。 vtkBiDimensionalWidget:用于测量二维平面上任意两个正交方向的轴长。2.创建用于测量距离的Widget应用实例先复习一下创建Widget的一般步骤:...
2020-03-11 13:26:02
247
原创 VTK_Learning_交互部件_Widget的创建
1.创建Widget交互的步骤虽然每个Widget都提供了不同的功能以及不同的API,但是,Widget的创建以及使用基本都是类似的。创建Widget的一般步骤如下:1.实例化Widget;2.指定渲染窗口交互器。Widget可以通过它来监听用户事件。3.必要时使用观察者/命令模式创建回调函数。与widget交互时,它会调用一些通用的VTK事件(94个事件列表),如StartInte...
2020-03-11 11:30:19
149
原创 VTK_Learning_交互部件_Widget应用综述
1.交互器样式遇到的难题交互器样式(如vtkInteractorStyleImage)主要是根据不同的键盘、鼠标等消息来控制相机(vtkCamera)/Actor等相关参数,从而达到了交互的目的!然而,在渲染场景中,这些交互器样式是没有表达实体的。也就是说,在交互之前,我们(用户)必须知道那些键盘消息或者鼠标消息是与哪些事件绑定的,在整个交互过程中,用户“看不到”交互器样式长什么样子,比如...
2020-03-11 11:11:27
162
原创 VTK_Learning_交互与Widget_观察者/命令模式
1.前言一个强大的可视化系统不仅需要强大的数据处理能力,也需要方便易用的交互功能。图形处理软件ParaView(hhttp://www.paraview.org)、德国癌症研究中心研发的MITK(http://www.mitk.org)等开源软件系统都提供了强大的交互功能,作为ParaView、MITK等软件构件基础的VTK同样也提供了各种各样的交互功能。VTK的交互除了可以监听来自鼠标、...
2020-03-11 10:06:49
159
原创 VTK_Learning_体绘制讨论_光照&阴影、VTKLODProp3D
1.光照与阴影通过VTKVolumeProperty可以设置体绘制阴影效果(Shading)。阴影效果主要受环境光系数、散射光系数、反射光系数和高光强度四个参数影响。vtkVolumeProperty::SetAmbient()设置环境光系数 vtkVolumeProperty::SetDiffuse()设置散射光系数 vtkVolumeProperty::SetSpecular()设...
2020-03-08 12:02:11
507
原创 VTK_Learning_体绘制讨论_颜色传输函数
1.颜色传输函数颜色传输函数与不透明度传输函数的使用类似,二者的不同之处在于颜色传输函数是将一个标量值映射为颜色值。这个颜色值可以是RGB值,也可以是HSV值。VTK颜色传输函数采用VTKColorTransferFunction类实现,其函数为:int AddRGBPoint(double x,double r,double g, double b);int AddHSVPoin...
2020-03-08 11:50:19
603
原创 VTK_Learning_体绘制讨论_梯度不透明度传输函数
1.梯度不透明度函数梯度不透明度函数是将梯度模值映射为一个不透明度乘子,从而增强过渡区域的显示效果。该函数也是使用vtkPiecewiseFunction类。例如,在不同材料的临界区域,如空气到软组织,或者软组织到骨头的临界区,梯度值会比较大,而材料的内部梯度值则会相对比较小。vtkVolumeProperty中通过如下函数设置和获取梯度不透明度函数:void SetGradien...
2020-03-08 11:42:09
439
原创 VTK_Learning_体绘制裁剪_Cripping技术
1.基于Clipping的体绘制裁剪技术Clipping技术支持VTKImageData和VTKUntructuredGrid数据类型。该功能由vtkAbstractMapper3D类提供,对于那些使用基于OpenGL的硬件裁剪技术的Mapper类,如vtkPolyDataMapper、vtkVolumeTextureMapper2D、VTKProjectedTetrahedraMapper等...
2020-03-08 10:58:44
241
原创 VTK_Learning_体绘制裁剪_Cropping技术
1.裁剪对于一些体积比较大,结构比较复杂的体数据进行体绘制的渲染效果难以展示其内部细节,需要用到裁剪技术来渲染部分数据。vtkVolumeMapper类中提供了两种裁剪技术,分别为Cropping和Clipping。Cropping技术只支持VTKImageData数据的裁剪。该方法在每个坐标轴上定义两个裁剪面,共有6个裁剪面(xmin,xmax,ymin,ymax,zmin,zmax)。...
2020-03-08 10:47:58
412
原创 VTK_Learning_纹理映射体绘制_三维纹理映射
1.三维纹理映射目前市面上的能多先科都是支持三维纹理映射的。利用三维纹理映射,将体数据映射至一组与视图平面平行的多边形,避免了二维纹理映射方法中因为纹理图像的切换造成的瑕疵。VTK中三维纹理映射体绘制方法由vtkVolumeTexture3D类实现,使用方法与二维纹理映射体绘制方法一致。(实时渲染效果真的是非常好)代码如下:#include <vtkAutoInit.h&g...
2020-03-08 10:15:34
404
1
原创 VTK_Learning_纹理映射体绘制_二维纹理映射
1.纹理映射体绘制基于软件实现的光线投影体绘制算法计算量非常大,不利于进行实时渲染。因此,目前体绘制经常使用图形硬件利用纹理映射来加速。其主要原理是将三维体数据作为纹理装载入硬件缓存中,利用硬件来实现插值以及图像合成操作,以提高绘制效率。基于图形硬件三维纹理功能的体绘制技术,主要是利用硬件的三线性过滤插值能力,通过渲染多个与视线垂直的面片来重建整个三维结构。每个面片利用三维纹理来决定颜色...
2020-03-08 10:09:25
268
1
原创 VTK_Learning_体绘制_固定点光线投影体绘制与GPU加速光线投影体绘制
1.固定点光线投影算法vtkFixedPointVolumeRayCastMapper是一个较好的vtkVolumeRayCastMapper的替代者。该类能够实现基于Alpha合成的体绘制方法和最大密度投影体绘制方法,能够支持任意类型带的医院或者独立多元数据。例如,当输入为二元独立数据时,第一源数据用于颜色映射,而第二元作为不透明度映射。该类使用了空间跳跃技术来加速体绘制渲染过程,而在...
2020-03-08 10:00:53
326
1
原创 VTK_Learning_体绘制_光线投影+最大密度投影+等值面法
1.固定点光线投影算法vtkFixedPointVolumeRayCastMapper是一个较好的vtkVolumeRayCastMapper的替代者。该类能够实现基于Alpha合成的体绘制方法和最大密度投影体绘制方法,能够支持任意类型带的医院或者独立多元数据。例如,当输入为二元独立数据时,第一源数据用于颜色映射,而第二元作为不透明度映射。该类使用了空间跳跃技术来加速体绘制渲染过程,而在内部...
2020-03-08 09:49:09
663
原创 VTK_Learning_体绘制_体绘制管线&图形渲染管线
1.几何渲染与体绘制1.1 几何渲染前面练习的渲染技术都是几何渲染技术。所谓的几何渲染技术,就是通过绘制几何图元(顶点、线段、面片等)来渲染数据,例如:绘制图像需要在空间中建立一个四边形图元,然后以纹理映射的方式将该图像贴图到该图元上进行渲染;而三维模型的绘制通常会分解为一系列的多边形面片进行绘制。这种通过生成中间几何图元来进行渲染的方法称为几何渲染。几何渲染的速度比较快,但是不能显示体...
2020-03-06 12:54:57
200
原创 VTK_Learning_图形基本操作进阶_面绘制纹理映射
1.纹理映射纹理映射是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。纹理生成过程实质上是将所定义的纹理映射为某种三维物体表面的属性,并参与后续的光照计算。在三维图形中,纹理映射运用的十分广泛,尤其是描述具有真实感的物体。实现纹理映射主要是建立纹理空间与模型空间、模型空间与屏幕空间之间的映射关系,如上图所示。其中纹理空间可以定义为u-v空间,每个坐标轴的范围为(0,1)。对于一个纹...
2020-03-06 12:30:25
250
原创 VTK_Learning_图形基本操作进阶_表面重建技术(三维点云曲面重建)
1.点云重建虽然Delaunay三角剖分算法可以实现网格曲面重建,但是其应用主要在二维剖分,在三维空间网格生成中遇到了问题。因为在三维点云曲面重建中,Delaunay条件不在满足,不仅基于最大最小角判断的对角线交换准则不在成立,而且基于外接圆判据的Delaunay三角化也不能保证网格质量。VTKSurfaceReconstructionFilter则实现了一种隐式曲面重建方法,即将曲面看做一个...
2020-03-06 11:20:07
1108
原创 VTK_Learning_图形基本操作进阶_表面重建技术(等值面提取)
1.等值面提取等值面(线)提取是一种常用的可视化技术,常应用于医学、地质、气象等领域。例如,在医学图像处理中,由于CT、MRI等图像分辨率越来越高,虽然体绘制技术可以清晰地对数据内部结构进行可视化,但是其计算量和效率却制约了其使用。此时可通过等值面提取技术,仅提取感兴趣的一个或者几个组织轮廓,并生成网格模型以供后续的处理和研究。根据数据类型的不同,VTK中提供了多个等值面提取类,其类图如图所...
2020-03-06 11:09:59
828
NDI_CAP_Ireach_qml_ireach_countdisplay_interface_icp_framebuffer.zip
2020-01-08
NDI_CAP_Test.zip
2020-01-06
NDI_CAP_Ireach_qml_ireach_countdisplay.zip
2020-01-06
MedicalDemo3.zip
2020-01-06
NDI_CAP_Ireach_qml_ireach_vtk_icp.zip
2020-01-06
NDI_CAP_Ireach_qml_landmarker.zip
2020-01-06
NDI_CAP_Ireach_qml_ireach_vtk_ICP_registration.zip
2020-01-06
NDI_CAP_Ireach_qml_ireach_vtk_dic.7z
2020-01-06
PIVOT2.pdf
2019-12-05
世界坐标局部坐标变换.pdf
2019-12-05
zhang_paper.pdf
2019-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人