您的位置:首页 > 编程语言

通过圆的颜色并结合霍夫变换检测目标圆的OpenCV代码

2016-07-07 14:44 387 查看
在实际应用场景中,我们遇到的图像一般是真彩色图像,即要检测的目标带有颜色信息,所以有必要知道如何利用目标的颜色信息来对目标进行检测。

在对图像的颜色进行处理时,RGB通道并不能很好地反映出物体具有的颜色信息,所以通常选取HSV颜色空间进行处理,在OpenCV的HSV空间中,H通道为色度通道,取值范围为0到180,S和V和饱和度与亮度通道,取值范围为0到255。比如红色在HSV颜色空间中的色度范围为0~10和160~180.

在这里,我给大家提供一个取色和调色小工具,这个小工具支持HSV空间的取色哦!不过不管是这个小工具还是PS中,H的范围都是0~360,S的范围是0到百分之百,V的范围也是0到百度分之百,这个也和百科上的解释是一致的。所以你在具体使用的时候要按比例转化一下哦!比如车牌蓝在标准HSV中是(225,100%,81%)那么转换到OpenCV中就是(225/360*180,255*100%,255*81%)!

下载链接:http://pan.baidu.com/s/1qYpcU1u

软件的截图如下:



下面上代码,代码中用到的图像的下载链接为:https://pan.baidu.com/s/1bo6hEft

本博文提供的代码的思路是:先对输入图像进行HSV通道转换,然后利用红色的色度范围设置高、低阈值,从而检测原图中红色的大圆与小圆。高、低阈值处理后各得到一个图像,将这两张图像合并后进行高斯滤波处理,完了之后再利用霍夫变换中的圆检测技术进行圆形区域提取。

//OpenCV版本3.0.0
//交流QQ2487872782

2016-8-4注:很报歉,此代码目前不能公开发表在博客上,已经删除,希望大家能理解!


运行结果如下图所示:



这里说明上面右上的图为什么是那样?那是因为在BGR空间中显然的HSV格式的图!



-------------------------------------------

欢迎大家加入图像识别技术交流群:271891601,另外,特别欢迎成都从事图像识别工作的朋友交流,我的QQ号2487872782
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: