VTK:轮廓最小凸包提取与显示

使用VTK中的PointsProjectHull类,可以提取任意点集的最小凸包。该过程先从图像轮廓的连通区域中获取点集,然后通过vtkPolyDataToImageStencil和vtkImageStencil组合应用,得到最小凸包的轮廓点集。最终结果显示,原始轮廓为灰色,0号连通区域的最小凸包以红色边框呈现,而填充的凸包以白色显示。
摘要由CSDN通过智能技术生成

     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&
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值