Opencv Subdiv2d(Delaunay Triangulation)删除无穷远处的顶点

时间:2015-09-23 18:48:21

标签: opencv triangulation delaunay

我正在使用subdiv2d类的opencv进行delaunay三角测量。我特别面临无限顶点的问题。我不需要图像外的任何三角形。所以,我插入了图像的角点,在许多情况下效果很好。但在某些情况下,我仍然在图像外面有三角形。所以,我想在无穷远处删除那些顶点。有关删除顶点或任何其他方式的任何帮助,有人可以建议使三角形始终在图像中吗?

以下是在subdiv中插入要素点的代码。我插入了图像的角点。

    Mat img  = imread(...);
    Rect rect(0, 0, 600, 600);
    Subdiv2D subdiv(rect);

    // inserting corners of the image
    subdiv.insert( Point2f(0,0));
    subdiv.insert( Point2f(img.cols-1, 0));
    subdiv.insert( Point2f(img.cols-1, img.rows-1));
    subdiv.insert( Point2f(0, img.rows-1));

    // inserting N feature points
    // ...

    // further processing

以下是无穷远角点产生问题的示例

5个特征点,一个在中间,另一个在4个角落 http://i.stack.imgur.com/VONsN.jpg

5个特征点,一个靠近底部,一个角点 http://i.stack.imgur.com/kjxgm.jpg

您可以在第二张图片中看到三角形在图像之外

0 个答案:

没有答案