【问题标题】:opencv houghCircles ( .... ?PARAM1?, ?PARAM2?)opencv houghCircles ( .... ?PARAM1?, ?PARAM2?)
【发布时间】:2026-01-22 06:20:03
【问题描述】:
cvHoughCircles(Mat& image, vector<Vec3f>& circles, int method, double dp, double minDist, double param1=100, double param2=100, int minRadius=0, int maxRadius=0)

根据文档:

param1 - 第一个特定于方法的参数。 在 CV_HOUGH_GRADIENT 的情况下,它是 两者中较高的门槛通过 到 Canny() 边缘检测器(较低的 一个会小两倍)

我真的不明白param1param2 的意思。我尝试了很多不同的值,但仍然不知道。 谁能向我解释一下。 谢谢

【问题讨论】:

    标签: c++ c opencv


    【解决方案1】:

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

    所以,

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

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

    我建议您阅读此book,这是我认为描述 OpenCv 的最佳方式。

    我希望这会有所帮助。

    【讨论】:

    • 谢谢,没那么复杂。在阅读文档时我应该多加注意 :-) 不幸的是,截止日期快到了,我负担不起阅读冗长的手册。
    • @myro 不客气!那本书真的很好。值得一读。