理论
- 在线检测情况下,线由两个参数(r,θ)定义。 在圆圈情况下,我们需要三个参数来定义圆:
- 其中(xcenter,ycenter)定义中心位置(绿点),r是半径,这允许我们完全定义一个圆,如下所示:
- 为了提高效率,OpenCV实现了一种比标准Hough变换稍微复杂的检测方法:Hough梯度方法,它由两个主要阶段组成。 第一阶段涉及边缘检测并找到可能的圆心,第二阶段找到每个候选中心的最佳半径。
代码
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
using namespace cv;
using namespace std;
static void help()
{
cout << "\nTh