当前位置:网站首页>VTK vtkcontourwidget extracts regions of interest
VTK vtkcontourwidget extracts regions of interest
2022-07-28 14:52:00 【Love the west wind】
vtkContourWidget brief introduction
It is mainly used to represent a point set , There are connections between point sets , Adjacent point , Not any point . The selection of the last point determines , Is the outline closed or open .
Use scenarios :
It can usually be used to extract regions of interest ; See the picture

official demo
#include <vtkCellArray.h>
#include <vtkContourWidget.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkMath.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkOrientedGlyphContourRepresentation.h>
#include <vtkPoints.h>
#include <vtkPolyData.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
int main(int /* argc */, char* /* argv */[])
{
vtkNew<vtkNamedColors> colors;
// Create the contour widget
vtkNew<vtkContourWidget> contourWidget;
// Override the default representation for the contour widget to customize its
// look
vtkNew<vtkOrientedGlyphContourRepresentation> contourRepresentation;
contourRepresentation->GetLinesProperty()->SetColor(
colors->GetColor3d("Red").GetData());
contourWidget->SetRepresentation(contourRepresentation);
// Generate a set of points arranged in a circle
int numPts = 10;
vtkNew<vtkPoints> points;
for (int i = 0; i < numPts; i++)
{
// Create numPts points evenly spread around a circumference of radius 0.1
const double angle = 2.0 * vtkMath::Pi() * i / numPts;
points->InsertPoint(static_cast<vtkIdType>(i), 0.1 * cos(angle),
0.1 * sin(angle), 0.0);
}
// Create a cell array to connect the points into meaningful geometry
vtkIdType* vertexIndices = new vtkIdType[numPts + 1];
for (int i = 0; i < numPts; i++)
{
vertexIndices[i] = static_cast<vtkIdType>(i);
}
// Set the last vertex to 0; this means the last line segment will join the
// 19th point (vertices[19]) with the first one (vertices[0]), thus closing
// the circle.
vertexIndices[numPts] = 0;
vtkNew<vtkCellArray> lines;
lines->InsertNextCell(numPts + 1, vertexIndices);
// Create polydata to hold the geometry just created, and populate it
vtkNew<vtkPolyData> polydata;
polydata->SetPoints(points);
polydata->SetLines(lines);
// Create the renderer to visualize the scene
vtkNew<vtkRenderer> renderer;
renderer->SetBackground(colors->GetColor3d("MidnightBlue").GetData());
// Create the GUI window to hold the rendered scene
vtkNew<vtkRenderWindow> renderWindow;
renderWindow->AddRenderer(renderer);
renderWindow->SetWindowName("ContourWidget");
renderWindow->SetSize(600, 600);
// Create the events manager for the renderer window
vtkNew<vtkRenderWindowInteractor> interactor;
interactor->SetRenderWindow(renderWindow);
// Use the "trackball camera" interactor style, rather than the default
// "joystick camera"
vtkNew<vtkInteractorStyleTrackballCamera> style;
interactor->SetInteractorStyle(style);
// Set up the contour widget within the visualization pipeline just assembled
contourWidget->SetInteractor(interactor);
contourWidget->On(); // Turn on the interactor observer
contourWidget->Initialize(polydata);
renderer->ResetCamera(); // Reposition camera to fit the scene elements
// Start the interaction
renderWindow->Render();
interactor->Start();
return EXIT_SUCCESS;
}
边栏推荐
- UI开发中所遇到的各种坑
- SwiftUI 的动画机制
- Langjing Technology (Trax China) "robot +ai" opens the era of Chinese retail meta universe
- 一些企业数据平台建设的思考
- Redis-配置文件讲解
- unittest执行runTestCase提示<_io.TextIOWrapper name=‘<stderr>‘ mode=‘w‘ encoding=‘utf-8‘>解决方案
- Chi square distribution and gamma function
- Many "double first-class" universities have launched the research guarantee and prediction name!
- TDengine 助力西门子轻量级数字化解决方案
- Reptile: from introduction to imprisonment (I) -- Concept
猜你喜欢

10、 Timestamp

Another way of understanding the essence of Hamming code

Simple data analysis using Weka and excel

MQTT入门级简单介绍与使用
C # read INI file and key value pair operation

The method of implementing simple student achievement management system with C language

8、 Picker usage drop-down box selection effect

It's so hot that solar power can't take off? Hello, head

Interviewer: what are the usage scenarios of ThreadLocal? How to avoid memory leakage?

如何让照片中的人物笑起来?HMS Core视频编辑服务一键微笑功能,让人物笑容更自然
随机推荐
C language exercises
How many ways can multithread run in sequence?
Force deduction solution summary 1331 array sequence number conversion
C语言中浮点数据类型(你学废了吗)
国产数据库的红利还能“吃”多久?
SwiftUI 的动画机制
Hcip day 11
使用Weka与Excel进行简单的数据分析
Factory mode and constructor mode
多线程顺序运行有几种方法?
35道MySQL面试必问题图解,这样也太好理解了吧
1st pre class exercise
Installing MySQL on Linux
Node file operation
Swiftui 4.0's new navigation system
7月29日 ApacheCon|Apache Pulsar 在 vivo 的探索与实践 即将开播
ZABBIX distributed
基础架构之日志管理平台及钉钉&邮件告警通知
8、 Picker usage drop-down box selection effect
我正在使用中的博客创作工具