Ho letto sull'argomento ma non riesco a ottenere l'idea in "inglese semplice" sull'utilizzo e i parametri per HoughCircles
(in particolare quelli dopo CV_HOUGH_GRADIENT
).Quali sono i valori di utilizzo/parametro corretti per HoughCircles in OpenCV per il rilevamento dell'iride?
Cos'è una soglia di accumulatore? Sono 100 "voti" un giusto valore?
Sono riuscito a trovare e "mascherare" l'alunno, e mi sono fatto strada attraverso la funzione Canny
, ma mi sto sforzando oltre e il mio problema è la funzione HoughCircles
. Sembra che non riesca a trovare il cerchio di Iris e non so perché.
E questa è la funzione su cui sto lavorando:
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)
Grazie fraxel. È la stessa procedura per trovare il limite esterno dell'iride? Come puoi vedere il mio problema non è la pupilla, ma l'anello esterno. Ho ottenuto il centroide usando l'isolamento del colore normale come si può vedere qui http://bit.ly/Lqaz4J Darò al codice una prova dopo il ritorno dal lavoro =) Grazie ancora. – pctroll
@pctroll - scusa, mi manca la tua domanda capito! Ho corretto la mia risposta per fare ciò che stai cercando :). Probabilmente puoi usare le informazioni del tuo centroide per posizionare meglio i cerchi. – fraxel
@flaxel - grazie !. E sì, posso lavorare meglio nel centro. Tuttavia, è molto interessante il modo in cui la funzione trova il cerchio nonostante il rumore (ho letto su Hough Transform, ma sono molto visivo e ho avuto Canny e Smooth in ordine inverso). – pctroll