나는 눈동자를 감지하는 방법을 설명하지만 눈 하나만 설명하는 동공 감지 Pupil Detection with Python and OpenCV에 대한 Github 코드를 발견했습니다. 나는 두 눈을 감지하고 싶다. 코드에서 두 눈동자를 어떻게 감지 할 수 있는지 아이디어를주십시오.두 눈을 감지하는 방법 파이썬과 OpenCV를 사용하는 동공
감사
나는 눈동자를 감지하는 방법을 설명하지만 눈 하나만 설명하는 동공 감지 Pupil Detection with Python and OpenCV에 대한 Github 코드를 발견했습니다. 나는 두 눈을 감지하고 싶다. 코드에서 두 눈동자를 어떻게 감지 할 수 있는지 아이디어를주십시오.두 눈을 감지하는 방법 파이썬과 OpenCV를 사용하는 동공
감사
간단히이 두 눈을 찾지 만 만 당신에게 일을주는 것 같습니다, 그 코드를 찾고. 필요에 따라 코드를 수정하여 발견 된 2 개의 얼룩을 추출하는 것뿐입니다. 55-72 행은 후보 풀을 일정 개수의 방울 (가능한 학생)에서 1 개까지 정리하는 곳입니다.
"if len (contours)> = n"은 기본적으로 말합니다. 여전히 하나 이상의 얼룩이 있고, 하나를 잘라내려고 노력하십시오. 문제는 두 개의 가장 큰 얼룩을 원한다는 것입니다. 따라서 두 개의 가장 큰 얼룩을 제외한 모든 얼룩을 제거하고 각각의 중심에 원을 그리는 것과 같은 확인 문을 다시 작성해야합니다. 내가 말할 수있는 한, 그 밖의 수정은 필요하지 않습니다.
다음은 도움이 될 수있는 몇 가지 샘플 코드입니다. 나는 파이썬 구문을 알고 당신의 링크 된 파일에서 몇 가지 물건을 수정하지 않습니다
while len(contours) > 2:
#find smallest blob and delete it
minArea = 1000000 #this should be the dimensions of your image to be safe
MAindex = 0 #to get the unwanted frame
currentIndex = 0
for cnt in contours:
area = cv2.contourArea(cnt)
if area < minArea:
minArea = area
MAindex = currentIndex
currentIndex = currentIndex + 1
del contours[MAindex] #remove the picture frame contour
del distanceX[MAindex]
이 당신의 두 눈 모양까지 당신을 얻을 것이다, 당신은 여전히 각 BLOB에 대한 그리기 원을 추가해야합니다 센터. (당신은 모든 "if len ..."문장을 삭제하고 이것을 while 문으로 대체해야합니다)
1로 변경하면 @SneakyPolarBear C :/Python27/Projects/proj/pupil.py:38 : VisibleDeprecationWarning : 정수 대신 정수가 아닌 숫자를 사용하면 나중에 오류가 발생합니다. pupilFrame = cv2.equalizeHist (frame [y + (h * .25) :(y + h), x (X + w)]) 트레이스 백 마지막 (가장 최근의 콜) 파일 "C : /Python27/Projects/proj/pupil.py"라인 (92)에 (largeBlob)> 0 인 경우 렌 : \t NameError : name 'largeBlob'이 정의되지 않았습니다 –
MwarukaSon
파이썬으로 프로그램하지 않으므로 디버깅은 당신에게 달렸습니다.하지만 당신이 나를 이해했다고 생각하지 않습니다. 그래서 제 대답에 추가했습니다. –