opencv圆形环状标记点检测

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

大概流程是

1 转灰度图

2 otsu转二值图

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

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

5 将mark轮廓拟合成椭圆

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

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

8 获取mark和所有子轮廓的质心

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

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

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

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

 

标记点说明

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

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

 

PS:

标记点图:

 

轮廓图:

结果:

 

 

  • 0
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值