opencv houghCircles ( .... ?PARAM1?, ?PARAM2?)

myr*_*yro 1 c c++ opencv

cvHoughCircles(Mat& image, vector<Vec3f>& circles, int method, double dp, double minDist, double param1=100, double param2=100, int minRadius=0, int maxRadius=0)
Run Code Online (Sandbox Code Playgroud)

根据文件:

param1 - 第一个特定于方法的参数。在 CV_HOUGH_GRADIENT 的情况下,它是传递给 Canny() 边缘检测器的两个阈值中的较高阈值(较低阈值将小两倍)

我真的不明白param1和 的意义param2。我尝试了很多不同的值,但仍然不知道。有人可以向我解释一下吗?谢谢

bac*_*hus 5

目前,唯一实现的方法cvHoughCircles()CV_HOUGH_GRADIENT.

所以,

param1- 指 Canny 边缘检测器将使用的边缘阈值(应用于灰度图像)。cvCanny()接受两个阈值并由 内部调用cvHoughCircles()。因此,较高(第一个)阈值设置为param1(作为参数传递到cvHoughCircles()),较低(第二个)阈值设置为该值的一半。

param2- 是累加器阈值。该值用于必须达到的累加器平面,以便检索行。

我建议您阅读这本书,我认为这是描述 OpenCv 的最好的书。

我希望这有帮助。