




1 #include "vtkAutoInit.h"
2 //VTK_MODULE_INIT(vtkRenderingOpenGL2);
3 //VTK_MODULE_INIT(vtkInteractionStyle);
4
5 VTK_MODULE_INIT(vtkRenderingOpenGL2);
6 VTK_MODULE_INIT(vtkInteractionStyle);
7 VTK_MODULE_INIT(vtkRenderingFreeType);
8
9 #include <vtkSmartPointer.h>
10 #include <vtkPolyDataReader.h>
11 #include <vtkCurvatures.h>
12 #include <vtkLookupTable.h>
13 #include <vtkPolyDataMapper.h>
14 #include <vtkActor.h>
15 #include <vtkScalarBarActor.h>
16 #include <vtkPointData.h>
17 #include <vtkRenderer.h>
18 #include <vtkRenderWindow.h>
19 #include <vtkRenderWindowInteractor.h>
20
21 int main()
22 {
23 vtkSmartPointer<vtkPolyDataReader> reader =
24 vtkSmartPointer<vtkPolyDataReader>::New();
25 reader->SetFileName("C:\\Users\\Administrator\\Desktop\\VTK2\\hellovtk\\vtk_图像处理学习\\第六章_图像处理\\data\\fran_cut.vtk");
26 reader->Update();
27
28 vtkSmartPointer<vtkCurvatures> curvaturesFilter =
29 vtkSmartPointer<vtkCurvatures>::New();
30 curvaturesFilter->SetInputConnection(reader->GetOutputPort());
31 //curvaturesFilter->SetCurvatureTypeToMinimum(); //最小曲率
32 curvaturesFilter->SetCurvatureTypeToMaximum(); //最大曲率
33 //curvaturesFilter->SetCurvatureTypeToGaussian();//高斯曲率
34 //curvaturesFilter->SetCurvatureTypeToMean(); //平均曲率
35 curvaturesFilter->Update();
36
37 double scalarRange[2];
38 curvaturesFilter->GetOutput()->GetScalarRange(scalarRange);
39 //建立查找表 做颜色映射
40 vtkSmartPointer<vtkLookupTable> lut =
41 vtkSmartPointer<vtkLookupTable>::New();
42 lut->SetHueRange(0.0, 0.6);
43 lut->SetAlphaRange(1.0, 1.0);
44 lut->SetValueRange(1.0, 1.0);
45 lut->SetSaturationRange(1.0, 1.0);
46 lut->SetNumberOfTableValues(256);
47 lut->SetRange(scalarRange);
48 lut->Build();
49 ///
50 vtkSmartPointer<vtkPolyDataMapper> mapper =
51 vtkSmartPointer<vtkPolyDataMapper>::New();
52 mapper->SetInputData(curvaturesFilter->GetOutput());
53 mapper->SetLookupTable(lut);
54 mapper->SetScalarRange(scalarRange);
55
56 vtkSmartPointer<vtkActor> actor =
57 vtkSmartPointer<vtkActor>::New();
58 actor->SetMapper(mapper);
59
60 vtkSmartPointer<vtkScalarBarActor> scalarBar =
61 vtkSmartPointer<vtkScalarBarActor>::New();
62 scalarBar->SetLookupTable(mapper->GetLookupTable());
63 scalarBar->SetTitle(curvaturesFilter->GetOutput()->GetPointData()->GetScalars()->GetName());
64 scalarBar->SetNumberOfLabels(5); //设置5个标签
65
66 vtkSmartPointer<vtkRenderer> render =
67 vtkSmartPointer<vtkRenderer>::New();
68 render->AddActor(actor);
69 render->AddActor2D(scalarBar);
70 render->SetBackground(0, 0, 0);
71
72 vtkSmartPointer<vtkRenderWindow> rw =
73 vtkSmartPointer<vtkRenderWindow>::New();
74 rw->AddRenderer(render);
75 rw->SetSize(640, 480);
76 rw->SetWindowName("Calculating PolyData Curvature");
77
78 vtkSmartPointer<vtkRenderWindowInteractor> rwi =
79 vtkSmartPointer<vtkRenderWindowInteractor>::New();
80 rwi->SetRenderWindow(rw);
81 rwi->Initialize();
82 rwi->Start();
83 return 0;
84 }


【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2022-08-16 Qt 无法解析的外部符号“public: virtual struct QMetaObject const ...“
2022-08-16 Qt char*,wchar_t*与QString之间的转换(利用reinterpret_cast和_stprintf函数,fromWCharArray从字符数组里读取数据)
2021-08-16 C++ 实现 COM → IUnknown → 接口
2021-08-16 C++ COM编程之IUnknown接口
2021-08-16 C++ COM三大接口:IUnknown、IClassFactory、IDispatch。
2021-08-16 C++ COM组件QueryInterface函数
2021-08-16 C++ COM组件的AddRef和Release()方法使用