C++ 中怎么利用OpenCV实现圆检测

这篇文章将为大家详细讲解有关C++ 中怎么利用OpenCV实现圆检测,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

 霍夫圆变换

霍夫圆变换的基本思路是认为图像上每一个非零像素点都有可能是一个潜在的圆上的一点,跟霍夫线变换一样,也是通过投票,生成累积坐标平面,设置一个累积权重来定位圆。如下图:

C++ 中怎么利用OpenCV实现圆检测

C++ 中怎么利用OpenCV实现圆检测

相关的API介绍

cv::HoughCircles

C++ 中怎么利用OpenCV实现圆检测

C++ 中怎么利用OpenCV实现圆检测

代码演示

新建一个项目opencv-0018,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法

C++ 中怎么利用OpenCV实现圆检测

C++ 中怎么利用OpenCV实现圆检测

因为要找圆,这次我们换了一个图片,运行起来先把原图和目标图都一起显示出来

C++ 中怎么利用OpenCV实现圆检测

霍夫圆检测

流利来说

  • 改为灰度图

  • 中值滤波

  • 霍夫圆检测

  • 在源图上画出来

C++ 中怎么利用OpenCV实现圆检测

关于C++ 中怎么利用OpenCV实现圆检测就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。