Я читал об этом предмете, но не могу понять на "простом английском" об использовании и параметрах для HoughCircles
(особенно те, что после CV_HOUGH_GRADIENT
.
Что такое порог аккумулятора? Являются ли 100 "голосов" правильным значением?
Я мог найти и "замаскировать" зрачок, и работал с функцией Кэнни
, но я борюсь за это, и моя проблема заключается в функции HoughCircles
. Кажется, круг Ирис не удается найти, и я не знаю, почему.
И это функция, над которой я работаю:
def getRadius(area):
r = 1.0
r = math.sqrt(area/3.14)
return (r)
def getIris(frame):
grayImg = cv.CreateImage(cv.GetSize(frame), 8, 1)
cv.CvtColor(frame,grayImg,cv.CV_BGR2GRAY)
cv.Smooth(grayImg,grayImg,cv.CV_GAUSSIAN,9,9)
cv.Canny(grayImg, grayImg, 32, 2)
storage = cv.CreateMat(grayImg.width, 1, cv.CV_32FC3)
minRad = int(getRadius(pupilArea))
circles = cv.HoughCircles(grayImg, storage, cv.CV_HOUGH_GRADIENT, 2, 10,32,200,minRad, minRad*2)
cv.ShowImage("output", grayImg)
while circles:
cv.DrawContours(frame, circles, (0,0,0), (0,0,0), 2)
# this message is never shown, therefore I'm not detecting circles
print "circle!"
circles = circles.h_next()
return (frame)