홍채 관련 생체 인식을위한 개념 증명 알고리즘을 개발 중입니다. 일련의 이미지에서 테스트해볼 수 있기를 원하지만 이렇게하려면 홍채 경계를 알아야합니다. 기술 here에 따라, 필자는 이미지를 필터링하고 지능적으로 임계 화했으며 (Otsu의 방법), 이는 학생의 어두운 원을 그대로 남겨 둡니다. 나는 OpenCV의 HoughCircles
방법을 사용하려고 시도했지만 non-C (++) 문서는 드물다. 다음은이 섹션에 대한 나의 코드입니다. :OpenCV HoughCircles 결과에 Python으로 액세스하려면 어떻게해야합니까?
# Convert PIL to openCV type
cvImage = cv.CreateImageHeader(inputImage.size, cv.IPL_DEPTH_8U, 1)
cv.SetData(cvImage, inputImage.tostring())
self.cvSize = cv.GetSize(cvImage)
# Create storage for circles (there should only be one)
storage = cv.CreateMat(50, 1, cv.CV_32FC3)
# Get circles (why doesn't this work?)
circles = cv.HoughCircles(cvImage,storage,cv.CV_HOUGH_GRADIENT,2,(self.cvSize[0])/4,200,100);
마지막 줄은 문제의 라인입니다. 나는 인터넷을 통해 퍼진 여러 게시물을 따라 갔으며 (대부분 C/C++ 또는 5 세 이상) 그 라인을 찾아 냈습니다. 오류를 리턴하지 않습니다. 결과에 어떻게 액세스합니까? circles
또는 storage
에 액세스합니까? 어떻게 접근합니까? 질문자가 말한대로 this question에서 제안을 시도했지만 cvMat
유형은 반복 가능하지 않으므로 작동하지 않습니다. 이 라이브러리의 드문 드문 한 문서를 다루기보다는 제 자신의 Circular Hough Transform을 작성하는 것이 적을 것 같지만, 제가 놓친 것만 큼 간단하다고 생각합니다.
적당한 시간 내에 동등한 동그라미를 항상 반환하도록 매개 변수를 최적화하려면 어떻게해야합니까?
은'circles' 오브젝트 [이 반복 가능한되어야 같다 (http://opencv.willowgarage.com/wiki/PythonInterface# CvSeq). – sarnold