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 HoughCircles正在返回假圆_Opencv - Fatal编程技术网

Opencv HoughCircles正在返回假圆

Opencv HoughCircles正在返回假圆,opencv,Opencv,我正在开发一个应用程序,它使用openCV计算多米诺骨牌上的斑点,当它在多米诺骨牌的拐角处找到半圆时,它有时会返回一个圆。我修改了不同的参数,无法解决这个问题。有什么想法吗 try { circles = new Mat(bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC1); Imgproc.HoughCircles(grayMat, circles, Imgproc.CV_HOUGH_GRADIENT, dp, min

我正在开发一个应用程序,它使用openCV计算多米诺骨牌上的斑点,当它在多米诺骨牌的拐角处找到半圆时,它有时会返回一个圆。我修改了不同的参数,无法解决这个问题。有什么想法吗

try
{
   circles = new Mat(bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC1);
   Imgproc.HoughCircles(grayMat, circles, Imgproc.CV_HOUGH_GRADIENT, dp, 
   minDist, param1, param2, minRadius, maxRadius);

   numberOfCircles = (circles.rows() == 0) ? 0 : circles.cols();
}
此图显示了一个多米诺骨牌拐角处的红色圆圈:


限制圆的半径还不够?虚假的圆圈似乎比真实的圆圈大得多,这可能会起作用。为了处理比例问题(如果你在硬编码半径),你可以动态地检查半径是否比流行的半径大,因为这似乎并不经常发生。我试过了,但没有成功。问题是,当图像中有很多多米诺骨牌时,你必须将相机举得更高,因此圆的直径以像素为单位变小。