首页 > 编程知识 正文

opencv 检测圆形,opencv检测圆弧

时间:2023-05-06 03:31:03 阅读:190026 作者:3069

最近在做圆形环状标记点检测问题,做个记录。此文是根据《Circular Coded Land单纯的糖豆 for Optical 3D-Measurement and Robot Vision》论文实现的。

大概流程是

1 转灰度图

2 otsu转二值图

3 获取所有轮廓信息(我看好多人用的canny算法,我没有,此后有时间在做测试)

4 找到符合条件的单纯的糖豆的轮廓(论文中提供了很多限制条件,我只用了很小一部分,以后需要都加上,必须加上)

5 将单纯的糖豆轮廓拟合成椭圆

6 根据椭圆参数 仿射变换成300直径的圆(300直径主要是为了显示用,也可以变成任意直径,随你)

7 同样将所有单纯的糖豆内部的一级子轮廓进行仿射变换

8 获取单纯的糖豆和所有子轮廓的质心

9 根据质心位置关系和标记点的逻辑关系,确定二进制数

10 旋转二进制数,找到能组合出最小数值的排列组合作为单纯的糖豆数值

源代码下载:https://download.csdn.net/download/ljx_yy/10563191

(包含源码,标记点测试图,和标记点设计图,测试图是标准A4,可以直接打印)

 

标记点说明

内部点分为2层,外面代表高位,里面代表低位,各6位。高位和低位都是6边形,交叉摆放,每两个点之间的夹角是30度,

在使用时,高位和低位必须都同时存在。

 

PS:

标记点图:

 

轮廓图:

结果:

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。