Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv JavaCV中的cvHoughCircles()参数?_Opencv_Javacv - Fatal编程技术网

Opencv JavaCV中的cvHoughCircles()参数?

Opencv JavaCV中的cvHoughCircles()参数?,opencv,javacv,Opencv,Javacv,我想使用cvHoughCircles()在图像中查找圆。 但是我混淆了第四个参数,因为当我使用“1”时,cvHoughCircles()找不到圆,当我使用“2”时,该方法工作正常并检测图像中的所有圆 查看两种情况下我的程序的屏幕截图 我对另一幅图像执行了相同的操作,但这次将第四个参数的值从1更改为2,并没有影响结果[cvHoughCircles()为两种情况返回了相同的结果(使用1或2作为第四个参数的值)] 有人能告诉我在处理不同图像时第四个参数的值吗?查看此链接: 它列出了所有函数的c/c+

我想使用cvHoughCircles()在图像中查找圆。 但是我混淆了第四个参数,因为当我使用“1”时,cvHoughCircles()找不到圆,当我使用“2”时,该方法工作正常并检测图像中的所有圆

查看两种情况下我的程序的屏幕截图

我对另一幅图像执行了相同的操作,但这次将第四个参数的值从1更改为2,并没有影响结果[cvHoughCircles()为两种情况返回了相同的结果(使用1或2作为第四个参数的值)]

有人能告诉我在处理不同图像时第四个参数的值吗?

查看此链接:

它列出了所有函数的c/c++/python实现,说明了每个参数的作用,我总是发现其中一个是javacv所包装的(在本例中是c代码)。当我看到你的帖子时,我正在寻找这个页面,以防再次出现这种情况,我现在可以点击我自己的链接了(太棒了!)。现在尽我所能回答你的问题

函数如下所示:

CvSeq* cvHoughCircles(CvArr* image, void* circle_storage, int method, double dp, double min_dist, double param1=100, double param2=100, int min_radius=0, int max_radius=0 )
网站中描述了:

dp–累加器分辨率与图像分辨率的反比。例如,如果dp=1,累加器的分辨率与输入图像相同。如果dp=2,则蓄能器的宽度和高度为原来的一半

我猜测(根据我在课堂上的记忆),这指的是金字塔结构,有时用于特征检测。基本上,您可以对图像的像素进行平均,以获得较小的图像,以便找到重要特征的位置,如角点或在本例中的圆,这些特征最终基于梯度信息(因此应使用黑白或灰度图像)

使用dp=1应该很好,但是,只需确保在图像上调用cvSmooth(),以便梯度向量在圆周围形成一个漂亮的圆。如果你知道有一个圆,那么你可以继续平滑和扩张(CVDISPLATE),直到圆出现,但是你可以检测到伪影,所以最大的圆应该是你感兴趣的。最后,这取决于您将算法付诸实施的情况