我正在使用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
您可以在第二张图片中看到三角形在图像之外