我想使用OpenCV(霍夫)圈检测来检测圆。我在黑色背景上创建了一个实心圆,尝试使用参数进行游戏,使用模糊和所有内容,但我无法使其找到任何东西。HoughCircles圆检测使用opencv和python-
任何想法,建议等将是伟大的,谢谢!
我当前的代码是这样的:
import cv2
import numpy as np
"""
params = dict(dp=1,
minDist=1,
circles=None,
param1=300,
param2=290,
minRadius=1,
maxRadius=100)
"""
img = np.ones((200,250,3), dtype=np.uint8)
for i in range(50, 80, 1):
for j in range(40, 70, 1):
img[i][j]*=200
cv2.circle(img, (120,120), 20, (100,200,80), -1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(gray, 200, 300)
cv2.imshow('shjkgdh', canny)
gray = cv2.medianBlur(gray, 5)
circles = cv2.HoughCircles(gray, cv2.cv.CV_HOUGH_GRADIENT, 1, 20,
param1=100,
param2=30,
minRadius=0,
maxRadius=0)
print circles
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
cv2.circle(img,(i[0],i[1]),i[2],(0,255,0),2)
cv2.circle(img,(i[0],i[1]),2,(0,0,255),3)
cv2.imshow('circles', img)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyAllWindows()
好吧,出于某种原因,它突然与相当多的参数工作。我从昨天开始经历了一切,没有任何工作,但现在它确实如此。这对我来说没有什么意义,但是... – Shin 2014-10-08 10:27:03
Hough圈有点棘手,在实践中。 – 2014-10-08 12:50:25