输入:边缘轮廓点集 S
Step1:在点集 S 中任取一点
O
,作为初始内接圆的圆心。
Step2:设置步长 s,最小步长 min_s。
Step3:遍历点集中的点组成的所有线段,计算每条线段到点
O
的最短距离(作点
O
到
线段的垂线,若垂足 P 在线段上,则 OP 的长度即最短距离,若垂足不在线段上,线段的
两个端点到点
O
距离小的端点记为点 P,OP 的长度即最短距离)。将所有最短距离的最小
值作为内接圆的半径 R。
Step4:沿 PO 的方向将圆心移动一个较小的距离 s,然后重复 Step3、Step4,直至
半径不再增大。
Step5:缩小步长,重复 Step3、Step4、Step5,直至步长小于预定值 min_s,算
法结束。
输出:最大内接圆的圆心
O
和半径 R