我一直在阅读有关该主题的内容,但无法以“简单的英语”了解有关HoughCircles
(特别是 之后的CV_HOUGH_GRADIENT
)的用法和参数的想法。
什么是累加器阈值?100“票”是正确的价值吗?
我可以找到并“掩盖”学生,并通过该Canny
功能工作,但我正在努力超越,我的问题是HoughCircles
功能。似乎无法找到 Iris 的圈子,我不知道为什么。
这是我正在处理的功能:
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)