2016-07-13 37 views
-3

나는 Hough Transform을 사용할 때 문제가 있습니다. 시험의 홍채 이미지에서 유일한 동공을 감지하고 싶습니다.홍채 인식 python에서 동공 감지

import cv2 
from cv2 import cv 
import numpy as np 
import os 

directory = os.listdir("/home/joker26/Scrivania/casia/test") 
numero_file = len(directory) 
for file in directory: 
    print file 
file_iride = raw_input("File(riportare anche estensione): ") 
path = "/home/joker26/Scrivania/casia/test/%s" %(file_iride) 
image_iride = cv2.imread(path) 
output = image_iride.copy() 
image_test = cv2.imread(path, cv2.CV_LOAD_IMAGE_GRAYSCALE) 

image_test = cv2.Canny(image_test,5,70,apertureSize=3) 
image_test = cv2.GaussianBlur(image_test, (7,7), 1) 

cerchi = cv2.HoughCircles(image_test, cv2.cv.CV_HOUGH_GRADIENT,50, 100, 50,300) 
if cerchi is not None: 
    cerchi = np.round(cerchi[0,:]).astype("int") 
    for (x,y,raggio) in cerchi: 
     cv2.circle(output, (x,y),raggio,(255,0,0),4) 
    cv2.imshow("Image test", np.hstack([image_iride,output])) 
    cv2.waitKey() 

결과는 다음과 같습니다 : http://i.stack.imgur.com/LJOE9.png

답변

0

대신 홍채의 동공을 검출하는 점은 무엇입니까 코드는 다음과 같다? 그들은 모두 눈의 일부입니다. 그러나 오류는 테스트 데이터 내에 있습니다.

당신은 사람들의 눈이 수천 장의 사진으로 추정되는 테스트 데이터를 사용하고 있습니다. 이제 컴퓨터가이 사진의 내용을 인식하는 법을 배우게되며, 훈련 데이터가 가득 차면 눈이 완전히 보입니다. 이 결함은 코드에있는 것이 아니라 코드가 액세스하는 데이터에 있습니다.

+0

지금, 나는 학생에 대한 정보를 추정 가지고,하지만 난 홍채 정보를 추정하는 방법을 모른다 ... 내 생각이 들어, 하나를 두 개의 원을 칠하는 것입니다 동공과 하나는 외부 홍채를 찍었습니다 ...하지만 두 번째 점을 내놓을 때 문제가 있습니다. 나는 6 개의 사진이 담긴 데이터베이스를 사용하고 있습니다 ... – crisannik

0

당신은 사용할 수 있습니다

cerchi = cv2.HoughCircles(image_test, cv2.HOUGH_GRADIENT, 1.3, 800)