Opencv HoughCircles正在返回假圆
我正在开发一个应用程序,它使用openCV计算多米诺骨牌上的斑点,当它在多米诺骨牌的拐角处找到半圆时,它有时会返回一个圆。我修改了不同的参数,无法解决这个问题。有什么想法吗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
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();
}
此图显示了一个多米诺骨牌拐角处的红色圆圈:
限制圆的半径还不够?虚假的圆圈似乎比真实的圆圈大得多,这可能会起作用。为了处理比例问题(如果你在硬编码半径),你可以动态地检查半径是否比流行的半径大,因为这似乎并不经常发生。我试过了,但没有成功。问题是,当图像中有很多多米诺骨牌时,你必须将相机举得更高,因此圆的直径以像素为单位变小。