自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (3)
  • 收藏
  • 关注

原创 VTK知识学习(40)-基本的图形操作(一)

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

2025-02-19 16:50:09 156

原创 VTK知识学习(39)-使用vktPolyData读取Txt并显示

显示控件的调用与前面一致,这里主要是涉及vtkPolyData数据的生成,先从文件读取每一个点的XYZ值,再调用InsertNextPoint方法将数据插入到结构中,最后的操作与前面的使用一致。这里有调用VTK的包围盒计算功能,生成了一个包围盒(红色)一起呈现。更高效,因为它专门为顶点数据设计,减少了渲染时的混乱和开销。通常用于渲染大量的顶点数据,它比使用。

2025-02-18 17:00:00 305

原创 使用DeepSeek编写VTK读取PLY的Demo

例如,在VTK的C#绑定中,可能使用的是大写开头的函数名,如SetFileName()可能正确,或者需要调整参数。关于如何显示窗口,VTK的C#交互器应该会弹出一个新的窗口,但可能需要调用RenderWindow.Render()方法,然后启动交互器的事件循环,比如Interactor.Start()。另外,需要注意,如果点云数据中没有面的信息,VTK可能会以顶点的方式渲染。另外,在C#中,VTK的对象可能需要使用Dispose来释放资源,但可能在示例中不需要考虑,因为程序运行结束后会自动释放。

2025-02-18 15:30:00 1234

原创 VTK知识学习(38)-vktPolyData数据生成与显示

图形数据的应用非常广泛,最贴近日常生活的应该是3D游戏,其中每个角色的模型、场景等都是图形数据。当然,游戏仅仅是图形数据的一个应用点,图形在CAD(计算机辅助设计)、影视、医学、地质、气象数据建模等领域中均有着广泛的应用。vkPolyData 是 VTK中常用的数据结构之一,可以表示小到一个点、一条线,大到一个模型、一个场景等。由前面内容可知 vtkPolyData 主要由几何结构数据、拓扑结构数据和属性数据组成。几何结构数据主要是组成模型的点集;

2025-02-17 16:38:17 780

原创 VTK知识学习(37)-频域处理

在图像处理和分析中,经常会将图像从图像空间转换到其他空间中,并利用这些空间的性质对转换后的数据进行分析处理。图像频域处理借助空间变换将图像从图像空间转换到频域空间,根据频域空间的性质对数据进行处理(如滤波),最后通过空间变换将处理后的数据变换至图像空间。最常用的频域转换是傅里叶变换。傅里叶变换的计算量较大,人们为了提高速度,提出了快速傅里叶变换。该变换得到了广泛应用。

2025-01-20 14:03:25 799

原创 VTK知识学习(36)-图像平滑

图像平滑常用于图像的预处理中,如计算梯度时先对图像进行平滑处理,可以减少噪声对梯度的影响。图像平滑一般是通过模板卷积运算实现。模板可以看作一个大小为nxn的小图像,例如 3x3、5x5等,模板的每个像素都对应一个系数值。模板卷积运算的过程先是将模板中心依次与图像每个像素重合,然后通过模板各个系数与图像对应像素相乘来计算模板对应像素的加权平均值,最后将运算结果赋给图像中模板中心对应的像素。均值滤波是一种常用的平滑方法,其对应的模板各个像素的值相同且和为1。

2025-01-17 17:00:41 998

原创 VTK知识学习(35)-边缘检测

图像中不连续的灰度值会产生边缘,图像的边缘检测是基于边界的图像分割方法的基础,例如,分水岭算法通常是分割原图的梯度图像,而梯度实际上也是反映图像的边缘信息。图像边缘常用图像一阶导数和二阶导数来检测。梯度算子对应于图像一阶导数。图像一阶导数一般是通过差分运算来近似的。VTK中可以用 vtklmageGradient 类计算图像梯度。注意:图像梯度是一个矢量,具有方向和大小,因此vtkImageGradient 的计算结果是一个梯度场,即每个像素值都是一个梯度矢量。

2025-01-15 15:45:00 564

原创 VTK知识学习(34)-图像二值化

二值图像和Label图像是图像分割中经常用到的两种图像。二值图像的每个像素只有两种可能的取值,即0和255。通常0代表图像的背景,而 255 代表图像的前景。图像二值化是最简单的图像分割模型。设置一个灰度阈值,将图像中值以下的像素值设置为背景,值以上的像素值设置为前景,即可得到一幅二值图像。

2025-01-14 15:15:00 306

原创 VTK知识学习(33)-交互问题2

主要是针对前面有过实现不了交互的情况进行说明,经过一些尝试和分析调用API,总算实现RenderWindowControl函数回调正常串接,当然这个移动处理事件的效果目前也没有确认。我尝试过重写这个鼠标事件,可是一个也不触发 ,想了想还是内部没有下发的问题。再看这个vteRenderWindow可以获取到交互对象,就把这个交互对象拿出来进行注册事件就可以了。猜想可能是这个事件传递到他这里就不下发了(当然啊也可能是一些设置没有开启)。毕竟他这个上面有这么些方法,不过后面还有机会打交道的。

2025-01-09 11:45:20 528

原创 VTK知识学习(32)-图像运算

定义 vkmageLogic对象,并设置两个图像为输入,SetOperationToXor()设置逻辑操作算子为异或操作,并且SetOutputTrueValue()设置当两个图像对应像素值异或结果为真时的输出像素值,可以看作两个矩形的重叠部分像素值相同,因此输出为0:矩形的不重看部分像素值一个为0,一个为255,因此异或结果为真,输出值为128。根据不同的操作,需要一个或者两个输入图像。当两个图像大小不同时,输出图像的范围为两个输入图像范围的并集,并且原点和像素间隔与第一个输入图像保持一致。

2025-01-08 14:00:00 1940

原创 VTK知识学习(31)-图像重采样

图像重采样是指对数字图像按所需的像素位置或像素间距重新采样,以构成几何变换后的新图像。重采样的本质就是图像恢复过程,它用输入的离散数字图像重建代表原始图像的二维连续函数,再按新的像素间距和像素位置进行采样。其数学过程是根据重建的连续函数(曲面),用周围若干像素点的值估计或内插出新采样点的值。图像重采样在图像处理中应用非常广泛,如 SIFT特征提取。重采样后图像的维数会发生改变。当重采样图像维数小于原图像时,称为降采样:当重采样图像维数大于原图像时,称为升采样。在VTK中,可以方便地对图像进行重采样。

2025-01-08 13:30:00 389

原创 VTK知识学习(30)-直方图统计

直方图统计是图像处理中一种非常重要的操作。VTK中的vtkmageAccumulate 类用于实现直方图统计功能。它将每个组分的数值范围划分为离散的间隔,然后统计每个灰度间隔上的像素数目。vtkImageAccumulate 输入和输出都是 vtkImageData 类型,因此直方图也可以看作一幅图像;输入图像的像素数据类型可以是任意的,但是最大支持3个组分像素类型,而输出图像的象素数据类型为int 型。

2025-01-07 16:30:00 1504

原创 使用ML.NET进行对象检测

ML.NET 是面向 .NET 开发人员的开源跨平台机器学习框架,支持将自定义机器学习模型集成到 .NET 应用程序中。它包含一个API,其中包含不同的 NuGet 包、名为模型生成器的 Visual Studio 扩展,以及作为 .NET 工具安装的命令行接口。ML.NET 概述 - ML.NET | Microsoft Learn。

2025-01-06 16:15:00 716 2

原创 VTK知识学习(29)-交互问题

它将vtkRenderWindow、vtkRenderer、vtkImageActor和vtkImageMapToWindowLevelColors中的功能打包成一个易于使用的类。每次调用SetSlice()都会更改显示的图像数据(切片),并更改3D场景中显示的切片的深度。函数指针是一个指向函数的指针变量,通过将函数指针作为参数传递给其他函数,当特定条件满足时,被调用函数可以通过这个指针调用回调函数。事件处理机制是一种实现回调的常见方式,尤其是在图形用户界面(GUI)编程或基于消息驱动的系统中。

2025-01-04 11:29:12 1254

原创 VTK知识学习(28)-区域提取

在三维图像切面提取程序的基础上进行扩展,实现一个稍微复杂的程序,即通过滑动鼠标来切换三维图像切面,这也是医学图像处理软件中一个基本的功能。由于示例读取的是二维图像,因此Z方向的区域为[0,0],而X方向的范围为[dims[0]/4,3*dims[0]/4],Y方向的范围为[dims[1]/4,3*dims[1]/4],即提取图像原图中间 1/4图像。除了冠状面、矢状面和横断面,即过图像内部一点且平行于 XY、YZ.XZ平面的平面,切面也可以是过三维图像内部一点且平行于任意方向的平面。

2025-01-03 16:37:08 806

原创 VTK知识学习(27)- 图像基本操作(二)

合成的效果为三个图像中对应的三个像素点的像素值合成一个RGB 像素值,如三个图像中第100个像素的像素值分别为255、0和 0,那么该点在输出图像中的像素值为(255.0.0),显示为红色。指定偏移和比例参数来对输入图像数据进行操作,例如一幅double 类型的图像,其数值范围为[-1,1],如果将其转换为 unsigned char 类型,需要设置 shif值为+1,比例系数设置为 127.5,那么输入数据-1映射为(-1+1)x127.5=0,而+1 则会映射为(+1+1)x127.5=255。

2024-12-21 16:40:28 1022

原创 VTK知识学习(26)- 图像基本操作(一)

图像处理离不开一些基本的图像数据操作,例如获取和修改图像的基本信息、访问和修改图像像素值、图像显示、图像类型转换等。熟练掌握这些基本操作有助于使用 VTK进行图像处理应用程序的快速开发。

2024-12-20 14:28:41 953

原创 VTK知识学习(25)- 图像显示2

一个三维图像渲染 Actor,通过纹理映射将图像映射到一个多边形上进行显示。使用 vtkImageActor 较 vtklmageViewer2要复杂一些,需要建立完整的渲染管线:包括 vtklmageActor、vtkRender、vtkRenderWindow 和 vtkRenderWindowInteractor。另外,作为二维图像浏览器,不需要在三维空间中进行旋转操作,因此还需要为vtkRenderWindowInteractor定义一个 vtkInteractorStylelmage 对象。

2024-12-17 15:24:48 465

原创 VTK知识学习(24)- 图像显示

一般显示器的灰度范围为256级,而医学图像的灰度范围则远远大于该范围,因此通过显示器显示时不能显示所有灰度级,需要使用窗宽来定义欲显示的灰度范围。若增大窗宽,则显示具有不同灰度值的组织结构增多,但是会降低组织之间的对比度,若减小窗宽,则可视的不同灰度组织结构会减少,同时增大组织结构的对比度。该类提供的主要交互操作有图像放缩、窗宽窗位调节,并提供切片选择及切片方向设置接口,尤其适合三维图像的切片显示。窗宽只是确定了CT图像灰度范围上的可视部分范围,还需要窗位来确定可视灰度范围的具体位置。

2024-12-13 15:45:00 656

原创 VTK知识学习(23)- 图像处理

数字图像是一种重要的多媒体数据,广泛应用于工业生产、生物医学、地质、气象等重要领域。数字图像处理技术具有重要的应用价值。图像是VTK里非常重要的一种数据结构。

2024-12-12 17:15:00 675

原创 VTK知识学习(22)- 场景的导入与导出

Exporter 类: vtkRIBExporter、vtkGL2PSExporter、vtkIVExporter、vtkOBJExporer、vtk00GLExporter、vtkVRMLExporter、vtkPOVExporter、vtkX3DExporter 等。场景的导入(1mport)与导出(Export)是指将渲染场景中的对象,包括光照、相机、Actor、属性、变换矩阵等信息写入文件中,或者从外部文件中将这些对象导入渲染场景中,一般所导入的文件含有多个数据集。二、场景的导入与导出。

2024-12-12 15:15:00 451

原创 VTK知识学习(21)- 数据的读写

对于应用程序而言,都需要处理特定的数据,VTK应用程序也不例外。VTK应用程序所需的数据可以通过两种途径获取:第一种是生成模型,然后处理这些模型数据(如由类 vtkCylinderSource 生成的多边形数据);第二种是从外部存储介质里导入相关的数据文件,然后在应用程序中处理这些读入的数据(如vtkBMPReader 读取 BMP图像)。另一方面,VTK也可以将程序中处理完成的数据写入单个文件中,或者将所渲染的场景导出,以备后续操作的使用。

2024-12-09 17:05:12 320

原创 VTK知识学习(20)- 数据的存储与表达

如图A所示,场数据可以看作数据数组的数组,数组里的每一个元素都是一个数组,数组的类型、长度、元组的大小和名称等都可以各不相同。如图所示,变量 Aray 是一个指向浮点型数组的指针,数组的长度由变量 Size 指定,由于数组的长度是动态地增加的,所以当存储数据的数组长度超出指定的长度时,会自动触发 ResizeO)操作来调整数组的长度,使数组的长度变成原来的两倍,MaxId是一个整型的偏移量,用来定义最后个被插入的数据的索引。内部有一个vtkFieldData(场数据)的实例,负责对数据的表达。

2024-12-07 17:00:57 1021

原创 VTK知识学习(19)- 不同类型的数据集

由前述内容可知,数据集由组织结构和与之关联的属性数据组成,组织结构包括拓扑结构和几何结构。数据集的类型由它的组织结构决定,同时数据集的类型决定了点和单元之间的相互关系。常用的数据集类型:a)图像数据 b)线性网格 c)结构网格 d)非结构点 e)多边形数据 f)非结构网格VTK常用的数据集类型。

2024-12-06 16:34:06 786

原创 VTK知识学习(18)- 基本数据结构之属性数据

属性数据(Attribute Data)是与数据集的组织结构相关联的信息。vtkDataSet的结构组成组织结构包括几何结构及拓扑结构,几何结构由点数据定义,拓扑结构由单元数据定义。因此,属性数据通常是与数据集的点数据或者单元数据相关联,但有时属性数据也可能与组成单元的某些成分相关联,如单元数据的某条边或者某个面等。此外,也可以给整个数据集指定某个属性数据,或者给数据集里的某一组单元数据或点数据指定相应的属性数据。

2024-12-05 16:11:17 839

原创 VTK知识学习(17)- 基本数据结构之单元类型

数据集由一个或多个单元组成,图列出了VTK支持的线性和非线性类型的单元。一系列有序的点按指定类型连接所定义的结构就是单元(Cel),单元是VTK可视化系统的基础。这些顺序连接的点定义了单元的拓扑结构,而点的坐标定义了单元的几何结构。单元就是一个有顺序的点集:G,={p,P.…p},其中p€P,P就是该有序的点集。单元的类型决定了点集里点的顺序(或者说单元的拓扑);而定义单元的点的个数就是该单元的大小(Size)。

2024-12-03 16:39:31 624

原创 VTK知识学习(16)- 基本数据结构(四)

/创建点数据//创建频数数据以及在每个点坐标上加入顶点(Vertex)类型的单元i < 3;i++)//每两个坐标点之间分别创建一条线//SetId()的第一个参数是线段的端点ID,第二个参数 是连接的点的ID//创建单元数组,用于存储以上创建的线段//创建vtkPolyData对象//将创建的点数据和线加入到vtkPolyData数据里//将vtkPolyData类型的数据写入到一个vtk文件,保存位置是工程当前目录。

2024-11-27 12:15:00 284

原创 VTK知识学习(15)- 基本数据结构(三)

由此可知,vtkCellArray类型的对象 vertices 就是用来指定数据集 polydata的拓扑结构,而polydata的几何结构则是由 points 来定义的。示例中实例化了一个 tkCellArray 对象,其中点数据定义数据集的几何结构,单元数据定义数据集的拓扑结构。示例中定义的数据集的拓扑结构是零维的点,即单元类型是“Vertex”。接着上面示例,给数据集定义拓扑结构。

2024-11-26 17:00:00 274

原创 VTK知识学习(14)- 基本数据结构(二)

紧接着创建了一个类型为 vtkPolyData 的数据,vtkPolyData 派生自类 vtkPointSet,而vtkPointSet 又派生自 vtkDataSet,所以说 vkPolyData 是一种具体的数据集;一个只有几何结构没有拓扑结构的vtkDataSet无法正常显示,只能先保存下来了。然后将创建的点数据加入数据集,于是点数据就定义了该数据集的几何结构;示例中,先创建了一个点数据(vtkPoints),里面含有三个点;通过示例,把几何结构和拓扑结构加入到数据集中。

2024-11-26 16:00:00 238

原创 VTK知识学习(13)- 基本数据结构(一)

前面介绍了VTK的一个重要概念--可视化管线,讲解了VTK数据的流动过程。针对可视化领域的特点,VTK定义了种类丰富的数据结构,下面将绍VTK的基本数据结构,了解这些数据结构,有助于写出更有针对性的、更高效的可视化应用程序。

2024-11-25 15:30:15 573

原创 VTK知识学习(12)- 读取PNG图像

【代码】VTK知识学习(12)- 读取PNG图像。

2024-11-21 18:30:00 494

原创 VTK知识学习(11)- 可视化管线Demo

【代码】VTK知识学习(11)- 可视化管线Demo。

2024-11-21 17:45:00 294

原创 VTK知识学习(11)- 可视化管线

可视化管线(Visualization Pipeline),用于获取或创建数据、处理数据以及数据写入文件或者把数据传递给渲染引擎进行显示。图1图2比较图1和图 2的可视化管线结构,可以看出图2多了一个vtkMarchingCubes用于处理读入的数据。VTK中把与类似vtkMarchingCubes 对数据做处理的类称为Filter。综合图 1 和图 2,可以抽象出更一般的 VTK 可视化管线结构,如图 3 所示。图3 VTK可视化管线。

2024-11-20 19:00:00 1381

原创 树莓派开发扩展十二 -C#编写客户端控制小车 Xamarin.Forms

【代码】树莓派开发扩展十二 -C#编写客户端控制小车 Xamarin.Forms。

2024-11-20 16:42:09 499

原创 VTK知识学习(10)- 渲染引擎

vtkProp;vtkCamera;vtkLight;…………这些类都是与数据显示或渲染相关的。用计算机图形学的专业词汇来说,就是它们构成了 VTK的渲染引擎(RenderingEngine)。渲染引擎主要负责数据的可视化表达,是VTK里的两个重要概念之一,而另一个重要概念就是可视化管线(Visualization Pipeline)。

2024-11-19 16:15:00 572

原创 VTK知识学习(9)-空间变换

在三维空间里定义的三维模型,最后显示时都是投影到二维平面,比如在屏幕上显示。三维到二维的投影包括透视投影(Perspective Projection)和正交投影(Orthogonale Projection)。正交投影也叫平行投影。变换的基本元素均是三维坐标点,三维坐标点(x,y,z)通常用齐次坐标(xh,yh,zh,wh)来表示。若wh=0,则表示无穷远的点。利用齐次坐标,可以将空间变换用4X4的矩阵来表示。平移、旋转、缩放等仿射变换都可以用矩阵相乘的形式表示。

2024-11-18 18:15:00 271

原创 VTK知识学习(8)-坐标系统

计算机图形学里常用的坐标系统有4种:1)、Model坐标系统。定义模型时所采用的坐标系统,通常是局部的笛卡儿坐标系。2)、World坐标系统。是放置Actor的三维空间坐标系。Actor(vtkActor类)其中的一个功能就是负责将模型从Model坐标系统变换到World坐标系统。每一个模型可以定义自己的Model坐标,但World坐标系只有一个,每一个Actor必须通过放缩、放置、平移等操作将Model坐标变换到World坐标系。World坐标系同时也是相机和灯光所在的坐标系统。

2024-11-14 18:00:00 464

原创 VTK知识学习(7)-纹理贴图

纹理映射是创建逼真效果的强大的图形工具,其原理是渲染时把二维的图像“贴”到物体的表面上,根据二维图像渲染出丰富多彩的效果,所以也叫纹理贴图。纹理映射需要三个要素:待贴图的表面、纹理映射以及纹理坐标。其中纹理映射在VTK中就是vtkImageData的数据集,而纹理坐标则用于控制纹理图在表面的位置。

2024-11-14 17:00:00 767

原创 VTK知识学习(6)-使用颜色

颜色是Actor重要的属性之一。VTK采用RGB和HSV两种颜色系统来描述颜色。RGB颜色系统是由三个颜色分量:R(红色)、G(绿色)、B(蓝色)的组合表示。取值范围0~1。(0,0,0)表示黑色,(1,1,1)表示白色。vtkProperty::SetColor(r,g,b)采用的就是 RGB颜色系统设置颜色属性值。HSV颜色系统是由三个分量来决定颜色,分别是:色相(Hue),表示颜色的基本属性,通常据说的颜色名称,如红色、黄色等;

2024-11-13 16:15:00 345

原创 VTK知识学习(5)-使用相机

观众的眼睛好比三维渲染场景中的相机,在VTK中用vtkCamera类来表示。vtkCamera负责把三维场景投影到二维平面,如屏幕。相机投影示意图如图所示。

2024-11-11 18:45:00 519

树霉派相关学习简单介绍和一些入门案例

树霉派相关学习简单介绍和一些入门案例

2024-10-28

基于C#实现软件发布公告 Demo-BS

实现软件发布公告,同理可以用多种公告发布的场景。用户可以使用客户端上传日志,服务器负责响应查看和存储公告的功能。

2024-07-29

2024年上半年软件设计师知识点总结

2024年上半年软件设计师知识点总结

2024-06-25

设计模式学习知识点总结

设计模式学习知识点总结

2024-06-25

设计模式图解,UML类图图示

设计模式图解,UML类图图示

2024-06-25

Qt图形框架视图结构梳理图

Qt图形框架视图结构梳理图

2024-02-26

Python 电机驱动器TM1637

电机驱动器TM1637

2021-09-05

Ubuntu中c语言转Python.7z

Ubuntu中c语言转Python.7z

2021-09-05

Pthon+Qt 智能小车

Pthon+Qt 智能小车

2021-09-05

空空如也

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

TA关注的人

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