VTK
文章平均质量分 57
落花逐流水
从事人工智能,模式识别与智能系统
展开
-
ThinPlateSpline(TPS)理论和代码
TPS 薄板样条函数 资源整理原创 2023-10-10 23:16:37 · 284 阅读 · 0 评论 -
VTK学习笔记(四十一)vtk提取切片求梯度
vtk提取切片梯度原创 2023-02-23 09:36:31 · 372 阅读 · 0 评论 -
VTK学习笔记(四十)vtk提取单层数据
VTK实现单层图片的提取方法有很多,可以使用的filter有很多。提取中心层片 y轴切片。提取中心层片,z轴切片。提取中心层片,x轴切片。原创 2023-02-20 22:20:38 · 741 阅读 · 0 评论 -
VTK学习笔记(三十九)vtkImageReslice
切片提取的关键是要给出ResliceAxes,实际上,它是一个4X4的矩阵。我们可以这样来理解:把这个矩阵看作是新坐标系在原坐标下的坐标表示,一个齐次坐标系。前三列分别表示新坐标系下x、y、z的向量坐标,第四列表示新坐标系下原点的坐标。这个矩阵表示了在新坐标系下,x方向向量为(0, 1, 0),y方向向量为(0, 0, -1),z方向向量为(-1, 0, 0)和原点坐标为(6, 0, 0)矩阵。它不仅可以提取切片,还有图像旋转,翻转,重采样,变形等功能,并且效率还很高。原创 2022-10-11 22:46:02 · 2271 阅读 · 2 评论 -
VTK学习笔记(三十八)vtkExamples目录
统计vtk Example测试类名与接口原创 2022-10-05 23:19:32 · 449 阅读 · 0 评论 -
VTK学习笔记(三十七)VTK测试过的类
后面会逐步更新vtk测试过的类。原创 2022-09-24 13:09:17 · 178 阅读 · 0 评论 -
VTK学习笔记(三十六)VTK图像填充
通过这个示例说明使用vtkImageConstantPad 可以实现图像的基于体素的裁剪。但是需要注意方向和原点,避免数据对不齐。原创 2022-09-24 12:31:46 · 1117 阅读 · 0 评论 -
VTK学习笔记(三十五)VTK最大连通域提取
vtk最大连通域原创 2022-06-17 15:37:37 · 1023 阅读 · 1 评论 -
VTK学习笔记(三十四)VTK简介
VTK学习笔记(三十四)VTK简介1、概要1.1、渲染简介1.2、可视化数据模型1.3、VTK图形子系统1.4、渲染多边形网格1.5、渲染一个图像2、纹理映射不记得从哪里下载的一些资料整理一下1、概要渲染基本元素渲染简介可视化数据模型VTK图形子系统渲染一个多线性网格渲染一个图像1.1、渲染简介1.2、可视化数据模型1.3、VTK图形子系统1.4、渲染多边形网格1.5、渲染一个图像2、纹理映射原创 2022-04-29 23:48:20 · 716 阅读 · 0 评论 -
VTK学习笔记(三十三)从vtkPolyData获取点数据
VTK学习笔记(三十三)从vtkPolyData获取点数据from vtk.util import numpy_supportimport numpy as nppoints = vtk.vtkPoints()points.InsertNextPoint(0.0, 0.0, 0.0)points.InsertNextPoint(1.0, 0.0, 0.0)points.InsertNextPoint(2.0, 0.0, 0.0)original = vtk.vtkPolyData()orig原创 2022-04-14 10:25:19 · 2660 阅读 · 0 评论 -
VTK学习笔记(三十二)vtkOBBTree 获取最小外包框
VTK学习笔记(三十二)vtkOBBTree 获取最小外包框1、Python vtkOBBTree Exemples1、Python vtkOBBTree ExemplesvtkOBBTree is an object to generate oriented bounding box (OBB) trees. An oriented bounding box is a bounding box that does not necessarily line up along coordinate axe原创 2022-04-13 22:40:11 · 1766 阅读 · 2 评论 -
VTK学习笔记(三十一)vtkCutter类对多边形取切面轮廓
VTK学习笔记(三十一)vtkCutter类对多边形取切面轮廓1、tkCutter类对多边形取切面轮廓1.1、vtkCutter类1.2、接口2、python 调用1、tkCutter类对多边形取切面轮廓1.1、vtkCutter类vtkCutter可以使用使用用户指定的隐式函数切割vtkDataSet。vtkCutter是一个过滤器,可以使用vtkImplicitFunction 的任何子类来切割数据。也就是说,对应于隐式函数 F(x,y,z) = value(s) 创建了一个多边形表面,可以在其原创 2022-04-13 20:40:32 · 1861 阅读 · 0 评论 -
VTK学习笔记(三十)Python vtkPolyData支持的操作查看
VTK学习笔记(三十)Python vtkPolyData支持的操作查看1、命令查看1、命令查看import vtkpolydata = vtk.vtkPolyData()# help(vtk)help(polydata)输出:Help on vtkPolyData object:class vtkPolyData(vtkPointSet) | vtkPolyData - concrete dataset represents vertices, lines, polygons,原创 2022-04-07 15:31:48 · 2159 阅读 · 1 评论 -
VTK学习笔记(二十九)Python vtkClipClosedSurface示例
VTK学习笔记(二十九)Python vtkClipClosedSurface示例1、Python vtkClipClosedSurface示例1.1、文件: vtkOperations.py 项目: avontd2868/OU_Final_Year1.2、文件: TestClipClosedSurface.py 项目: 0004c/VTK1.3、1.4、文件: TestMNIObjects.py 项目: timkrentz/SunTracker1.5、文件: TestClipOutline.py 项目:原创 2022-04-07 10:14:20 · 747 阅读 · 0 评论 -
VTK学习笔记(二十八)ExtractEnclosedPoints python示例
VTK学习笔记(二十八)ExtractEnclosedPoints python示例1、Python vtkSelectEnclosedPoints Examples1.1、File: findPointsInCell.py Project: gacevedobolton/myVTKPythonLibrary1.2、File: world.py Project: cjauvin/pypetree1.3、File: vtklib.py Project: ajgeers/utils1.4、File: Tissu原创 2022-04-06 20:16:53 · 1231 阅读 · 0 评论 -
VTK学习笔记(二十七)ExtractEnclosedPoints示例
VTK学习笔记(二十七)ExtractEnclosedPoints示例1、ExtractEnclosedPointsDescription1、ExtractEnclosedPointsDescriptionThis example uses vtkExtractEnclosedPoints to select points that exist within a closed vtkPolyData surface. After reading a vtk polydata file, the exa原创 2022-04-06 19:18:36 · 848 阅读 · 0 评论 -
VTK学习笔记(二十六)Python vtkMassProperties示例
VTK学习笔记(二十六)Python vtkMassProperties示例1、Python vtkMassProperties示例1.1、 utility.py 项目: gmaher/tcl_code1.2、文件: CellMech_bkup.py 项目: siboles/pyCellAnalyst1.3、文件: ClosedSurfaceSegmentStatisticsPlugin.py 项目: BRAINSia/Slicer1.4、文件: MassProperties.py 项目: jlec/VTK原创 2022-04-06 10:24:51 · 607 阅读 · 0 评论 -
VTK学习笔记(二十五)vtk空间几何变换(三)
VTK学习笔记(二十五)vtk空间几何变换(三)vtk中绕指定轴旋转一个角度void vtkTransformConcatenation::Rotate(double angle, double x, double y, double z){ if (angle == 0.0 || (x == 0.0 && y == 0.0 && z == 0.0)) { return; } // convert to radians angle = vt原创 2022-04-01 17:34:49 · 689 阅读 · 0 评论 -
VTK学习笔记(二十四)vtk空间几何变换(二)
VTK学习笔记(二十四)vtk空间几何变换(二)1、向量的内积和外积1.1、numpy实现1.2、自己根据公式实现2、NumPy叉乘2.1、叉乘-数学解释2.2、叉乘-程序应用对于姿态来说,空间变换一般包括:平移、旋转。下面先整理一些实现变换必须的向量内积和外积,先整理一些实现,后面再找出对应的vtk实现。一般c++中Eigen中有很好的实现,python中则不太清楚。1、向量的内积和外积1.1、numpy实现cross = np.cross(tx, ty)np.cross(tangents原创 2022-03-30 23:25:20 · 720 阅读 · 0 评论 -
VTK学习笔记(二十三)vtk空间几何变换
VTK学习笔记(二十三)vtk空间几何变换1、VTK相关的类有:1、VTK相关的类有:vtkTransform, vtkTransformFilter, vtkMatrix4x4等相关的方法有:• RotateX(angle)、RotateY(angle)、RotateZ(angle)• RotateWXYZ(angle,x,y,z)• Scale(x,y,z)• Translate(x,y,z)• SetMatrix(m)、GetMatrix(m)• PostMultiply原创 2022-03-30 22:27:17 · 2183 阅读 · 0 评论 -
VTK学习笔记(二十二)vtk编译测试所有官方程序
VTK学习笔记(二十二)vtk编译测试所有官方程序学习VTK时,每次都要找到单个测试程序,一个一个的编译测试比较浪费时间。c++ 测试程序:https://kitware.github.io/vtk-examples/site/Cxx/python测试程序:https://kitware.github.io/vtk-examples/site/Python/每次搜到需要的测试程序,要么单独拷贝下来在python环境中执行,要么在c++环境下编译运行。而且还经常为找不到测试用例着急。其实还可以有其他原创 2022-03-18 22:15:17 · 1881 阅读 · 0 评论 -
VTK学习笔记(二十一)vtk裁剪求截面面积
VTK学习笔记(二十一)vtk裁剪求界面面积1、代码2、CMakeLists.txt3、运行输出1、代码#pragma once#include <vtkActor.h>#include <vtkCamera.h>#include <vtkClipPolyData.h>#include <vtkDataSetMapper.h>#include <vtkFeatureEdges.h>#include <vtkNamedColo原创 2022-03-15 21:53:07 · 1530 阅读 · 0 评论 -
VTK学习笔记(二十)vtk 读取stl文件
VTK学习笔记(二十)vtk 读取stl文件1、代码2、CMakeLists.txt1、代码#include <vtkPolyData.h>#include <vtkSTLReader.h>#include <vtkSmartPointer.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderWindow.h>#include &原创 2022-03-15 18:21:16 · 2730 阅读 · 0 评论 -
VTK学习笔记(十九)vtk polydata
VTK学习笔记(十九)vtk polydata1、VtkPolyData的镜像操作2、vtkPolyData数据组成及属性修改3、VTK图像处理(二)--vtkPolyData数据处理前言vtkPolyData数据生成与显示VTK常见的vtkPolyData数据源类vtkPolyData数据的创建vtkPolyData属性数据基本图形操作法向量计算符号化Glyphing曲率计算网格平滑封闭性检测与填补漏洞连通区域分析以下内容都来自网络搜集1、VtkPolyData的镜像操作以下代码完成了vtkPoly原创 2022-03-15 16:19:46 · 4284 阅读 · 0 评论 -
VTK学习笔记(十八)vtk GMM
VTK学习笔记(十八)vtk GMM1、VTK 对GMM、EM的实现:2、windows下编译2.1、注意事项:需要自己实现linux才有的函数drand48(), sran48();2.2、定义宏 M_PI3、测试程序1、VTK 对GMM、EM的实现:https://github.com/daviddoria/ExpectationMaximization因为有依赖,下载代码使用:git clone --recursive https://github.com/daviddoria/Expecta原创 2022-02-17 14:31:38 · 601 阅读 · 0 评论 -
VTK学习笔记(十七)vtkImageEuclideanDistance
VTK学习笔记(十七)vtkImageEuclideanDistance1、computes 3D Euclidean DT1、computes 3D Euclidean DTvtkImageEuclideanDistance implements the Euclidean DT using Saito’s algorithm. The distance map produced contains the square of the Euclidean distance values.The alg原创 2022-01-25 10:52:04 · 341 阅读 · 0 评论 -
VTK学习笔记(十六)vtkImageReslice 与 vtkExtractVOI
VTK学习笔记(十六)vtkImageReslice1、关键代码:2、完整代码:3、CMakeLists.txt1、关键代码:先通过vtkMetaImageReader读取一副三维图像,获取图像范围、原点和像素间隔,由这三个参数可以计算图像的中心位置。接下来定义了切面的变换矩阵axialElements,该矩阵的前三列分别表示X、Y和Z方向矢量,第四列为切面坐标系原点。通过修改切面坐标系原点,可以得到不同位置的切面图像。然后将读取的图像作为vtkImageReslice的输入,通过函数SetResl原创 2022-01-13 23:57:42 · 3956 阅读 · 0 评论 -
VTK学习笔记(十五)vtk中的有些概念
VTK学习笔记(十五)vtk中的有些概念1、ijkras矩阵1、ijkras矩阵上面是一个spacing = 3mm, direction为 -1,-1,1的图像的ijk2ras矩阵。原点是(235.5, 235.5, -618.5),可以理解为世界坐标系到RAS坐标系的一个变换Transform。-3 0 0 235.50 -3 0 235.50 0 3 -618.50 0 0 1...原创 2022-01-12 19:57:29 · 597 阅读 · 0 评论 -
VTK学习笔记(十四)vtkImageData缩放到指定尺寸
VTK学习笔记(十四)vtkImageData缩放到指定尺寸1、vtkSmartPointer智能指针返回2、vtkSmartPointer作为参数返回1、vtkSmartPointer智能指针返回其实主要想说以下智能指针的使用。当所有过程写在主函数中时运行正确。但当用函数传递vtkImage指针时出现问题,可以通过编译但运行时提示试图访问未授权的内存地址。子函数内部的vtkImageData指针在return到主函数的时候"Out of Scope"引用计数变成0。在子函数内部不应直接对将要返原创 2022-01-06 11:01:52 · 2593 阅读 · 0 评论 -
VTK学习笔记(十三)vtkImageData数据重采样
VTK学习笔记(十三)vtkImageData数据重采样1、代码2、CMakelists.txt3、测试数据4、测试方法1、代码#include <vtkBoxWidget.h>#include <vtkCamera.h>#include <vtkColorTransferFunction.h>#include <vtkCommand.h>#include <vtkDICOMImageReader.h>#include <vtk原创 2022-01-04 20:21:07 · 1166 阅读 · 0 评论 -
VTK学习笔记(十二)vtkImageData打印内容
VTK学习笔记(十二)vtkImageData打印内容std::cout << __FUNCTION__ << std::endl << std::flush; volumeData->Print(std::cout);原创 2021-12-31 15:51:24 · 927 阅读 · 0 评论 -
VTK学习笔记(十一)VTK数据重采样
VTK学习笔记(十一)VTK数据重采样1、代码2、CMakeLists.txt3、问题与解决1、代码#include "vtkSmartPointer.h"#include "vtkNIFTIImageReader.h"#include "vtkImageData.h"#include <vtkAutoInit.h>#include <vtkSmartPointer.h>#include<vtkImageResample.h>#include<vt原创 2021-12-28 18:01:53 · 1279 阅读 · 0 评论 -
VTK学习笔记(十)基于VTK和ITK程序
VTK学习笔记(十)基于VTK和itk程序1、程序2、CMakeLists.txt3、哪里使用了VTK1、程序下面程序是一个基于ITK的连通域分析程序#include "itkImage.h"#include <vtkSmartPointer.h>#include <vtkPNGWriter.h>#include "itkScalarConnectedComponentImageFilter.h"#include <itkImageToVTKImageFilter原创 2021-12-27 20:29:16 · 1233 阅读 · 0 评论 -
VTK学习笔记(九)VTK中的各个模块
VTK中的各个模块1、各个模块2、各个模块的作用1、各个模块在前面的几个示例中CMakeLists.txt中有涉及到VTK的组件,因此要整理以下各个组件的作用,以及包含的内容。如下:find_package(VTK COMPONENTS vtkCommonCore vtkCommonDataModel vtkImagingCore vtkInteractionStyle vtkRenderingContextOpenGL2 vtkRenderingCore vtkRen原创 2021-12-27 19:54:31 · 2055 阅读 · 0 评论 -
vtk与cmake管理多个exe
vtk与cmakehttps://github.com/lorensen/VTKExamples项目:VTKExamples-master\src\Cxx\CompositeData因为在看cmake管理项目,在看怎样在一个cmake中生成多个exe所以就关注到了这个项目。所以关注的重点是CMakeLists.txt因为在本地没有给vtk库设置环境变量,因此下面这一句是我自己添加进去的。set(VTK_DIR D:/ProgramFiles/vtk-9.0/lib/cmake/vtk-9.0)原创 2021-12-11 23:27:09 · 506 阅读 · 0 评论 -
Slicer学习笔记(二十七)vtk内存泄漏问题解决
虽然自己写的代码没有::New() 但是如果自己写的代码包含指针,那么赋值给指针的函数内部可能存在 ::New() 操作。所以,虽然你没有::New() 过,也要Delete().//-----------------------------------------------------------------------------vtkOrientedImageData* vtkSlicerSegmentationsModuleLogic::CreateOrientedImageDataFrom原创 2021-11-01 18:47:53 · 628 阅读 · 0 评论 -
VTK学习笔记(八)VTK中的智能指针-vtkNew
VTK学习笔记(八)VTK中的智能指针-vtkNew1、VTK笔记-VTK中的智能指针-vtkNew1.1、vtkNew1.2、vtkNew.h1、VTK笔记-VTK中的智能指针-vtkNewC++11开始使用智能指针管理资源,会自动管理引用计数的增加与减少,如果检测到某对象的引用计数值减少为0,则会自动释放该对象的资源,从而达到自动管理内存的目的。 VTK中创建对象有三种方式: 1.使用vtkObjectBase里的静态成员方法New()创建,用Delete()释放; 2.使用智能原创 2021-10-29 23:21:57 · 1318 阅读 · 0 评论 -
VTK学习笔记(七)vtkImageData基本操作
VTK学习笔记(七)vtkImageData基本操作1、vtkImageData基本操作1.1、图像信息访问和修改1、vtkImageData基本操作图像数据在VTK 中是用vtkImageData 类表示的,对于不同的图像文件类型,VTK 提供相对应的类对图像文件进行读写操作。比如,前面章节中所提的vtkBMPReader 是用于读取BMP 图像,vtkJPEGReader 用于读取JPG 图像。VTK 除了支持BMP、JPG 图像格式之外,还支持其他多种图像格式的读写。图像处理离不开一些基本的图原创 2021-10-27 23:03:01 · 3388 阅读 · 1 评论 -
VTK简介
VTK简介1、简介2、特点1、简介Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk。2、特点它以用户使用的方便性和灵活性为主要原则,具有如下的特点 [2] :1: 具有强大的三维图形功能。Visualizati原创 2021-08-30 11:47:33 · 862 阅读 · 0 评论 -
VTK学习笔记(六)ImageReslice
** Code **#include <vtkActor.h>#include <vtkImageData.h>#include <vtkImageReslice.h>#include <vtkIntArray.h>#include <vtkNew.h>#include <vtkProperty2D.h>#include <vtkRenderWindow.h>#include <vtkRenderWin原创 2021-08-29 22:30:00 · 612 阅读 · 0 评论