![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VTK 3D 显示
4月16!
平时记录用,不喜忽喷
展开
-
display mask
class SegmentDisplay {public: SegmentDisplay() = default; template <typename ImageType> void addSourceImage(typename ImageType::Pointer image) { auto converter = itk::ImageToVTKImageFilter<ImageType>::New(); converter->SetInput(ima.原创 2021-12-22 11:31:33 · 300 阅读 · 0 评论 -
vtk 图像序列鼠标交互翻页
读一组dcm图像,鼠标交互翻页,取点#include <vtkAbstractPicker.h>#include <itkGDCMImageIO.h>#include <itkGDCMSeriesFileNames.h>#include <itkImageSeriesReader.h>#include <vtkPolyDataMapper.h>#include <vtkImageData.h>#include <.原创 2021-04-14 16:30:39 · 330 阅读 · 0 评论 -
ITK 原图种子点经过roi、降采样后index的变化
原图像在vtk上交互时物理坐标和index的关系梳理:1、vtk交互:在vtk切片上得到的world point,用Image->TransformPhysicalPointToIndex(worldpoint)函数就可以得到在真实图像上的index;2、ITk图像的同一位置的 index 在提取 ROI 区域并 降采样 后变成什么?怎么算?下面的函数是我提取的ROI区域,然后对ROI区域进行降采样处理的代码:#include "itkRegionOfInterestImageFilte原创 2021-03-18 14:03:30 · 537 阅读 · 4 评论 -
vtk 三视图
这个是任意面切割,https://blog.csdn.net/laziji/article/details/104405180?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242我想切片轮换的转载 2021-03-17 11:37:56 · 638 阅读 · 2 评论 -
VTK 任意一个ploydata求体积
画一个长方体;可以看结果体积对不对!这个的体积结果是24: vtkSmartPointer<vtkCubeSource> cubeSource = vtkSmartPointer<vtkCubeSource>::New(); //vtkPolyData类型数据 cubeSource->SetXLength(2); cubeSourc...原创 2019-04-16 17:48:52 · 1194 阅读 · 0 评论 -
VTK 三维数据计算体积
这个是针对分割后的数据,在VTK窗口可以显示出你想要的部分,然后通过面绘制计算体积。我实验了一下,能出现结果! //用Marching Cubes 算法 vtkSmartPointer<vtkMarchingCubes> vesselExtractor = vtkMarchingCubes::New(); vesselExtractor->Set...原创 2019-04-16 17:33:42 · 4426 阅读 · 2 评论 -
VTK 消除窗口内物体的颜色
比如我在开始显示的物体的颜色是红色,交互发生后,显示的结果我想要 变成其他颜色,就用这句。Mapper->ScalarVisibilityOff();然后在后面actor赋上其他颜色 actor->GetProperty()->SetColor(1,0,0);...原创 2019-04-12 15:04:18 · 492 阅读 · 0 评论 -
VTK 鼠标交互实时显示窗口内图像的像素坐标(二维图像)
这是VTK的例子:https://vtk.org/Wiki/VTK/Examples/Cxx/Images/PickPixel#include <vtkVersion.h>#include <vtkAssemblyPath.h>#include <vtkCell.h>#include <vtkCommand.h>#inclu...原创 2019-04-10 13:20:10 · 4719 阅读 · 25 评论 -
VTK 读取ITK处理后显示
实例:VTK读数据,转ITK数据,用ITK处理后,转VTK数据,显示!重要代码:( 1 )VTK转ITK //VTK 转ITK typedef itk::VTKImageToImageFilter< ImageType> vtkToitkFilterType; vtkToitkFilterType::Pointer vtkToitkImageFilter ...原创 2019-03-18 09:38:13 · 1354 阅读 · 4 评论 -
VTK 矩形框选中的点高亮
代码:VTKExamples/Cxx/Picking/HighlightSelectedPointsHighlightSelectedPoints按住“r”键,鼠标左键画矩形框,选中的点变为高亮。#include <vtkSmartPointer.h>#include <vtkPointData.h>#include <vtkIdTypeArray...原创 2019-03-12 15:45:50 · 3151 阅读 · 3 评论 -
VTK 任意平面切割体数据(有什么实际用处吗)
这是一个博主的博客,我把它调通以后,实验出来的效果,感觉跟我自己的需求不是很贴合。我想要的是任意手动切割,切割可能是个曲面,所以我把这个调通的先放这,有个思路总是好的。#include "vtkPlane.h"#include "vtkProperty.h"#include "vtkRenderer.h"#include "vtkRenderWindow.h"#include "...原创 2019-04-17 15:04:27 · 2107 阅读 · 11 评论 -
VTK 各种例子Demo
https://lorensen.github.io/VTKExamples/site/Cxx/Interaction/Game/图像处理,鼠标交互,QT等等都有例子可以参考。...原创 2019-04-29 14:29:33 · 4135 阅读 · 0 评论 -
VTK 绘制点集
vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); for(double k=0; k < dims[2]; k++) { for(double j = 0; j < dims[1]; j++) { ...原创 2019-05-09 09:15:51 · 1795 阅读 · 0 评论 -
VTK 鼠标交互后更新绘制
所有的步骤都更新完后需要重新绘制,最后加上这两句,否则不会更新绘制:这个是在自己的Style里的:this->Interactor->GetRenderWindow()->GetRenderers()->GetFirstRenderer()->Render();this->Interactor->GetRenderWindow()->R...原创 2019-05-09 16:58:07 · 1689 阅读 · 0 评论 -
QT QVTKWidget鼠标滚轮切换单张切片
https://blog.csdn.net/learn_sunzhuli/article/details/45830797看的是这个博客,用的是vtkcommand.有这个需要的可以看看,我用的不是这个,但是借鉴了一下。Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget){ ui->se...原创 2019-06-14 17:05:06 · 1505 阅读 · 0 评论 -
VTK 显示图片实时添加坐标等信息
https://cmake.org/Wiki/VTK/Examples/Cxx/Images/PickPixelVTK的官方例子:涉及在VTK画图上添加坐标信息,且根据鼠标移动实时显示。...原创 2019-07-04 11:15:40 · 1244 阅读 · 0 评论 -
VTK 在2维图片上显示标记点
vtkSmartPointer<vtkRegularPolygonSource> polygonSource = vtkSmartPointer<vtkRegularPolygonSource>::New(); polygonSource->SetNumberOfSides(50); polygonSource-...原创 2019-07-18 14:00:25 · 1469 阅读 · 2 评论 -
VTK 遍历render中的actor
vtkActorCollection* actorCollection = render->GetActors();int num = actorCollection->GetNumberOfItems();//这个函数比较重要,否则getNextActor将没法得到正确的actoractorCollection->InitTraversal();for (int i=...原创 2019-07-16 16:59:19 · 3193 阅读 · 0 评论 -
DCM图像的坐标系的相关理解(世界坐标->图像坐标)
https://blog.csdn.net/inter_peng/article/details/46513847我的重点关注是,dcm的坐标系原点是在左上角;像素间的距离是mm为单位的,这是像素的物理间距;有些CT得到的图像的间距并不是1,1,1,可能是小数。问题:这种情况下,会遇到一些奇怪的现象:例如如果涉及在VTK窗口通过鼠标点击转化为3维世界坐标点时,需要特别关注,可能会出现...原创 2019-05-08 14:15:39 · 5261 阅读 · 7 评论 -
VTK 鼠标画线(点移动线可同步更新)
鼠标交互事件:点两个点形成一条线 通过鼠标点两个点,同时标记这两个点,形成一条线。(只有一条线,并不是每次点两个点都会新出现一条线) 这个版本是个初级版本,(后面我也实现了任意拖动一个点,直线会相应发生变化,以及两点在Z轴上的变动,线也会同步更新)。代码太多所以我也没有贴上来,有需要了我会发出来!double point1[3]{ 0 };double point2...原创 2019-03-12 10:18:59 · 3297 阅读 · 8 评论 -
VTK 面绘制(升级版)
面绘制的同时进行数据平滑:问题:在3D绘制时通过算法得到的数据面绘制后出现阶梯效应,这就对数据后续观察和操作造成影响。比如我们得到的血管图像一般都不是平滑的,因此在重建时需要加上下面的代码:0、数据读取1、降采样,加速(如果降采样后影响结果,这一步可不加)2、MC算法重建3、减少数据点,加速4、平滑、求法线、提取等值面OK,显示出来就好了备注:这里我想重点...原创 2019-03-11 16:50:28 · 1602 阅读 · 0 评论 -
VTK 任意平面的切割
https://blog.csdn.net/chinamming/article/details/16828503看了这个文档,我的需求是任意手术规划切割,后面来总结。...原创 2019-03-11 16:39:50 · 2209 阅读 · 0 评论 -
VTK 图像处理相关链接
图像细化:http://www.itdaan.com/blog/source/bdbaa7cf3fd5.htmlvtkPolyData数据处理:http://tanqingbo.com/2017/08/24/vtkPolyData数据处理/...转载 2019-01-10 11:03:13 · 171 阅读 · 0 评论 -
VTK 两个图像拼接
https://blog.csdn.net/Jane_yuhui/article/details/83893218转载 2019-01-25 16:50:15 · 1267 阅读 · 0 评论 -
VTK 点云数据集.off文件资料(直接下载)
1、这个里面有很多顶级论文,可以看看:(数据集我圈出的那几个我下载了)里面有测试集和验证集 http://modelnet.cs.princeton.edu2、这个是一个博客里的,我看了一下,内容很多 ,实现需要就去看看找找 https://blog.csdn.net/h_____h/article/details/831772593、下面是一个立方体的o...原创 2019-01-24 10:33:19 · 1892 阅读 · 1 评论 -
VTK 像素值输出和赋值
一般都是按照下面的程序进行的: vtkSmartPointer<vtkBMPReader> reader = vtkSmartPointer<vtkBMPReader>::New(); reader->SetFileName("test.bmp"); reader->Update(); in...原创 2019-01-08 13:21:10 · 906 阅读 · 0 评论 -
VTK 沿直线方向生成一个圆柱体
如果已经知道了圆柱长轴的两个端点,可以结合vtkLineSource 和 vtkTubeFilter来生成具有方向性的圆柱体int main(int, char *[]){ vtkSmartPointer<vtkLineSource> line = vtkSmartPointer<vtkLineSource>::New(); line...原创 2018-12-25 15:16:10 · 1095 阅读 · 0 评论 -
VTK 鼠标交互只操作一个Actor
窗口有多个Actor,只操作其中一个Actor: class MouseInteractorStyle5 : public vtkInteractorStyleTrackballActor{public: static MouseInteractorStyle5* New(); vtkTypeMacro(MouseInteractorStyle5, vtkIntera...转载 2018-12-25 11:21:04 · 2261 阅读 · 0 评论 -
VTK的鼠标交互事件示例
两种交互方式:1、 vtkInteractorStyleTrackballCamera:相当于移动摄像头,按键,屏幕上的所有内容都会动起来。2、vtkInteractorStyleTrackballActor:相当于实体对象,当鼠标在某一个对象上按键时,只有这个对象会动。看自己的需求吧!原文:https://blog.csdn.net/u013094443/article/details...转载 2018-12-25 10:30:06 · 7865 阅读 · 0 评论 -
vtkLine 和 vtkLineSource生成直线可视化(生成的直线有什么不一样吗)
已知两个点:StartPoint,EndPoint,用vtk可视化其确定的直线:1、vtkLineSourcevtkSmartPointer<vtkLineSource> lineSource= vtkSmartPointer<vtkLineSource>::New();lineSource->SetPoint1(Pointbegin);lineSour...原创 2019-01-03 15:11:22 · 3503 阅读 · 0 评论 -
VTK 拾取VTK窗口内模型上的点(非空白处的点)
https://www.cnblogs.com/21207-iHome/p/9124024.html这个博客有参考价值,后续会总结补上转载 2019-01-26 10:30:24 · 1245 阅读 · 2 评论 -
VTK 判断点是否在物体内
这是VTK的例子,判断定义的三个点是否在物体内;#include <vtkVersion.h>#include <vtkPolyData.h>#include <vtkPointData.h>#include <vtkCubeSource.h>#include <vtkSmartPointer.h>#include <...原创 2019-01-16 10:17:53 · 2670 阅读 · 0 评论 -
ITK 读多张dcm序列(并用VTK重建显示出来)
这个是ITK的例子,读dcm文件夹https://itk.org/Doxygen/html/Examples_2IO_2DicomSeriesReadImageWrite2_8cxx-example.html#_a2下面程序可以亲测,根据上面的官网例子编写:搞了半天多,终于调通:下面实现的是读一组CT dcm文件,并执行面绘制。顺便提一句:.dcm序列的命名最好是有规则可循的,否则会读...原创 2019-03-15 11:28:01 · 4532 阅读 · 16 评论 -
VTK 安装后编译debug版和release版
之前只用Xcode,ITK,VTK的时候安装完就OK了,现在需要用到QT就有问题了因为QT需要用到VTK 的release版的一些文件,看了些文章,记录一下。mac安装VTK以后,openObject:开始了1、2、在run选项后面info选择release,然后ALL_build。在哪看到release版的文件夹,一版我们在Cmake前新建一个文件夹code,编译后,co...原创 2019-03-14 11:20:59 · 1001 阅读 · 0 评论 -
VTK 设置滑动条
以下例子是: 面绘制一个mhd文件,在设置 vesselExtractor->SetValue( 0 ,20)的第二个值时,沿用滑动条来观察结果;如果你用在其他场景下,相应改变vtkSliderCallback中的参数和函数语句即可;参考的博客原文:https://blog.csdn.net/u014003644/article/details/76...原创 2019-02-25 10:40:42 · 1521 阅读 · 0 评论 -
VTK 控制3Dprop按指定的方向向量摆放
https://www.cnblogs.com/zfyouxi/p/5234459.html我的目标是:画一条直线,读进去一个STL模型,把模型沿着直线的方向摆放;目前正在做,参考这个博客的,如果我写好了会来贴代码!good luck!更新:2019.1.31 搞这个,理论和推倒都符合逻辑了,但是因为调用顺序没对,所以耽误我两天时间,下面我把具体思路理一下。1、首先需要知道你的模...原创 2019-01-26 14:41:02 · 1631 阅读 · 5 评论 -
VTK 把VTKploydata 转化为VTKimagedata
下面写的是我的应用环境,至于你的ploydata是怎么来的,按你自己就好!!!我有一堆从ITK数据(二值图)读的点为1的坐标点的集合,这些点的坐标我放进vtkploydata里,点云可视化: vtkSmartPointer<vtkVertexGlyphFilter> vertexGlyphFilter1 = vtkSmartPointer<vtkVertexGlyph...原创 2019-01-28 16:39:27 · 2930 阅读 · 3 评论 -
VTK 鼠标交互时将主程序的数据传进交互类中
例如:我们的初衷是想要显示一个图像,然后在图像上画一条直线,得到直线与图像重合的点的坐标。问题:在主函数中,显示一个图像,并写上交互类Style,那么如何使图像数据与直线数据进行交互处理呢?主函数中的交互函数一般是写成下面这样的: vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =vt...原创 2019-01-22 17:07:51 · 619 阅读 · 0 评论 -
VTK 常见的RGB值设置(好像不对)
https://www.cnblogs.com/general001/articles/4151861.这个是RGB值以255为基础的:我按上面的除255发现颜色对不上啊...占坑。 ...原创 2019-01-31 15:58:14 · 1260 阅读 · 1 评论 -
VTK 清空点集
组建点集时,可以通过下面的程序将一些点放在点集里: vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); points->InsertNextPoint(point1); points->InsertNextPoint(point2); vtkSmartPoin...原创 2019-01-16 10:26:51 · 1980 阅读 · 4 评论