OpenCV 中的 Delaunay 三角剖分、opencv_contrib 模块及校准模式
1. Delaunay 三角剖分与凸包识别
在图形处理中,当我们掌握了如何在图形上定位和移动后,就可以研究一些问题,比如点集的外边缘或边界相关问题。
1.1 凸包上的边界三角形和边的识别
在初始化 Delaunay 三角剖分时,我们使用一个边界矩形 rect 调用 cv::Subdiv2D(rect) 构造函数。此时,有以下几种情况:
- 未锚定的虚拟边 :若某条边的起点和终点都在 rect 边界之外,那么这条边属于三角剖分的虚拟边界三角形,我们称之为未锚定的虚拟边。
- 锚定的虚拟边 :若一条边的一个点在 rect 边界内,另一个点在边界外,那么边界内的点位于点集的凸包上。凸包上的每个点都与虚拟外部边界三角形的两个顶点相连,这两条边依次出现,我们称连接矩形边界内点和外部虚拟点的边为锚定的虚拟边。
如果要找到点集的凸包,可利用这些特性快速生成。例如,从已知的虚拟顶点 1、2 和 3 开始,使用 cv::Subdiv2D::nextEdge() 可以快速生成所有锚定的虚拟边(排除未锚定的虚拟边)。调用 cv::Subdiv2D::rotateEdge(2) 进行翻转,再调用一两次 cv::Subdiv2D::nextEdge() 就能定位到点集的凸包上。每个锚定的虚
超级会员免费看
订阅专栏 解锁全文
19

被折叠的 条评论
为什么被折叠?



