我用各种OpenCV过滤器创建了黑色和白色面具。有四个圈是清晰可见Python OpenCV从黑色和白色面具检测圈
我试图勾勒使用HoughCircles这些圈子,但它给许多误报和一般坏的结果:
circles = cv2.HoughCircles(combined, cv.CV_HOUGH_GRADIENT, 1, 300, np.array([]), 10, 30, 60, 300)
哪有我正确地检测到黑白图像中的圆形?
这里是一个可以与黑白图像被用于运行的代码:
import numpy as np
import cv2
import cv
image = cv2.imread("image.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray, cv.CV_HOUGH_GRADIENT, 1, 300, np.array([]), 10, 30, 60, 300)
if circles is not None:
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
cv2.circle(image, (i[0], i[1]), i[2], (0, 255, 0), 1)
cv2.circle(image, (i[0], i[1]), 2, (0, 0, 255), 3)
cv2.imshow("thing", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
如果您提供一段可运行的代码来加载图像并绘制圆圈,有人可能会倾向于查看它。 – Bull 2014-09-06 01:47:09
谢谢@B ...添加了可运行代码 – fruitcup 2014-09-06 01:52:50