自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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&gt

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

该例子为NDI导航头的数据解析,包含TX的和BX类型的数据解析,能够通用到windows系统和Ubuntu系统,并对NDI官方的BUG做了修改,可以拿来直接使用;导航头的工具数据和散点数据在一个线程中采集,可以和qml界面交互,数据传输到qml端的类也完成了封装,可以参考学习;并且可以进行Ireach的散点采集,进行手术导航前的配准。

2020-01-08

qian_navigator.zip

代码学习,代码学习

2020-01-06

NDI_CAP_Test.zip

NDI导航头数据解析,解析BX数据,解析TX数据,可以直接拿去用,是对官网的导航头数据解析的一个扩展,比官网的提供的解析功能强大,可以参考学习。

2020-01-06

NDI_CAP_Ireach_qml_ireach_countdisplay.zip

qml和c++交互学习的例子,NDI通信解析BX和TX数据,更高级的例子请查看icp_framebuffer.zip例子

2020-01-06

MedicalDemo3.zip

VTK对CT数据的处理,生成STL,对CT进行切片等等操作,有时间可以按照源码学习。VTK对CT数据的处理,生成STL,对CT进行切片等等操作,有时间可以按照源码学习。

2020-01-06

NDI_CAP_Ireach_qml_ireach_vtk_icp.zip

VTK中的ICP配准例子,可用于学习ICP配准。VTK中的ICP配准例子,可用于学习ICP配准。VTK中的ICP配准例子,可用于学习ICP配准。

2020-01-06

NDI_CAP_Ireach_qml_landmarker.zip

landMark配准学习资源,有详细的注释,对初学者很有帮助!landMark配准学习资源,有详细的注释,对初学者很有帮助!

2020-01-06

NDI_CAP_Ireach_qml_ireach_vtk_ICP_registration.zip

vtk中的ICP配准算法,此例子提供了ICP配准的使用方法。vtk中的ICP配准算法,此例子提供了ICP配准的使用方法。

2020-01-06

NDI_CAP_Ireach_qml_ireach_vtk_dic.7z

vtk读取dicm的demo,并且使用Marchingcube提取数据中的点集,并存储到.xyz文件中,并实现了读取.xyz文件,将文件中的点云提取出来。

2020-01-06

lic_image.zip

lic 图像增强 图像模糊的图片!

2019-12-08

PIVOT2.pdf

旋转标定(Pivot Calibration) 目的: 对每个探针来说, 都有自身的一个参考架(物体坐标系), 但是在导航系统中, 通过反 光球可以识别到的是: 探针的坐标中心位置(3 个自由度, xyz 位置)以及姿态(3 个自 由度, 旋转关系), 但并不给出探针针尖的坐标. 标定的目的就是找到针尖在探针坐 标系下的位置(该位置是固定不变的), 然后再结合动态的探针坐标系变化值, 在任意 运动时都能计算得到针尖在摄像头坐标下的运动值! 方法: 将探针的针尖部位固定, 然后手持探针整体陀螺式地旋转运动(必须保持针尖卡住不 动),这样探针上每一点都在某一固定球面上运动, 包括探针坐标系的原点

2019-12-05

sunguihua.zip

CT图片,可用于开发测试!!!

2019-12-05

世界坐标局部坐标变换.pdf

世界坐标—物体坐标之间的变换矩阵及齐次表示 问题: 在描述物体或点所在位置时, 我们往往只使用(世界)坐标系来表示. 然而在某些特殊的 情况下, 比如刚体的某个特征点相对刚体并不会运动, 此时如果使用物体坐标系, 该 点的坐标保持为定值, 从而只需要关注此刚体的特征点在世界坐标中的变化即可; 刚 体上的其余点在世界坐标系的变化规律均可通过此点的物体坐标间接得出

2019-12-05

test_3D_20190909194333.xyz

头模点云数据,可以直接使用3D软件(Meshlab等)打开查看。

2019-09-24

zhang_paper.pdf

A Flexible New Technique for Camera Calibration Zhengyou Zhang December 2, 1998 (updated on December 14, 1998) (last updated on March 25, 1999) Technical Report MSR-TR-98-71

2019-09-24

空空如也

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

TA关注的人

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