使用opencv识别同心圆

来源:互联网 发布:laravel php artisan 编辑:程序博客网 时间:2024/06/05 12:47

使用过opencv视觉库的小伙伴都知道,opencv自带的函数HoughCircles()可以用来检测圆,但无法直接检测同心圆。所以当我们在识别靶盘的时候,需要对该函数进行改进应用,以下是我的思路:
1. 对原图像进行边缘检测
2. 运用HoughCircles()函数,将其中的半径参数加以限制,由小到大扫描。取出每次扫描得分值最高的圆
3. 计算这些圆的圆心距,找出最小的圆心距,然后以该圆心为基准,判断其他圆与该圆心的距离。若小于一个阈值,则视为该圆的同心圆。

初步效果如下:
这里写图片描述

可以看出,可以有效检测出同心圆,但也有被误检的情况。调整一下参数可以改善检测的情况。实际中通过外置摄像头检测靶盘,亲测有效。

VS2013工程下载地址http://download.csdn.net/detail/u011853479/9377731

1 0
原创粉丝点击