2D图像处理:最大内接圆
文章目录
- 一、最大内接圆
- 1.1 本文检测过程
- 1.2 实现检测过程 cv::pointPolygonTest
- 1.3 优化检测方法
一、最大内接圆
- 最大内接圆简单的定义:圆心位于轮廓内部,且圆心到轮廓中部分点的距离一样,且半径最大。
1.1 本文检测过程
- 确定检测目标轮廓;
- 遍历轮廓内的非零点到轮廓的距离作为内接圆半径;
- 将2中半径最大的轮廓内点作为圆心,对应的半径作为最大内接圆半径。
1.2 实现检测过程 cv::pointPolygonTest
cv::pointPolygonTest函数是用来判断一个点是否在一个多边形的内部,以及距离多边形的距离,点在多边形内部距离为正,在外部为负,这样只要对整张图上所有点进行遍历,然后找到距离最大的点就可以作为内接圆的圆心,最大的距离值就是圆的半径。因此,如果该函数返回的圆心对应的距离为最大的距离时,则判定该圆心和距离对应最大内接圆的圆心和半径。
1.3 优化检测方法
针对上述方法,个人认为存在的一些缺陷如下:
1. 输入的非零点过于多,导致速度较慢;
2. 当轮廓内存在内轮廓时,有可能导致内接圆错误;
改进内容:
1. 通过细化图像将骨架作为待查找点加速;(并且可以适当的进行膨胀操作,提高精度);
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
