【发布时间】:2016-11-09 19:08:23
【问题描述】:
我正在实现一个函数来检测图像中的圆圈。我正在使用OpenCV for Java 来识别圆圈。灰度图像确实显示了一个圆圈。
这是我的代码:
Mat gray = new Mat();
Imgproc.cvtColor(img, gray, Imgproc.COLOR_BGR2GRAY);
Imgproc.blur(gray, gray, new Size(3, 3));
Mat edges = new Mat();
int lowThreshold = 100;
int ratio = 3;
Imgproc.Canny(gray, edges, lowThreshold, lowThreshold * ratio);
Mat circles = new Mat();
Vector<Mat> circlesList = new Vector<Mat>();
Imgproc.HoughCircles(edges, circles, Imgproc.CV_HOUGH_GRADIENT, 1, 60, 200, 20, 30, 0);
Imshow grayIM = new Imshow("grayscale");
grayIM.showImage(edges);
知道为什么会这样吗?
【问题讨论】:
-
你能发布源图像和传递给 HoughCircle 的图像吗?如果可能的话,还有中间图像。
-
Houghcircles 应该用于 tge 灰度图像,而不是边缘图像
标签: java opencv geometry detection hough-transform