Каковы правильные значения использования/параметров для HoughCircles в OpenCV для обнаружения Iris?

Я читал об этом предмете, но не могу понять на "простом английском" об использовании и параметрах для HoughCircles(особенно те, что после CV_HOUGH_GRADIENT.

Что такое порог аккумулятора? Являются ли 100 "голосов" правильным значением?

Я мог найти и "замаскировать" зрачок, и работал с функцией Кэнни, но я борюсь за это, и моя проблема заключается в функции HoughCircles. Кажется, круг Ирис не удается найти, и я не знаю, почему.

This is what I have so far. LEFT: masked pupil RIGHT: canny result

И это функция, над которой я работаю:

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)
13
задан reefaktor 26 October 2016 в 16:56
поделиться