vtk提取凸包使用类 PointsPrjectHull。该类可以获取任意点集的最小凸包。该类输入为点集。输出为包围该点集的最小凸包轮廓点集。前面一章讲了如何寻找图像轮廓并对其进行连通性分析(连通区域分析)。现在以某一连通域的轮廓点集作为输入提取其最小凸闭包。将提取到的凸闭包用vtkPlolyLine来保存显示
关键代码:
vtkSmartPointer<vtkPoints> point0=
vtkSmartPointer<vtkPoints>::New();
for(int i=0;i<connectFilter1->GetOutput()->GetNumberOfPoints();++i)
{
int regionId=connectFilter1->GetOutput()->GetPointData()->GetScalars()->GetTuple1(i);
double *xyz=connectFilter1->GetOutput()->GetPoint(i);
if(regionId==0)//选取区域标号为0的轮廓点集
point0->InsertNextPoint(xyz);
}
//[6] --提取轮廓凸包
vtkSmartPointer<vtkPointsProjectedHull&