[python] OpenCV로 눈 인식하기

OpenCV는 컴퓨터 비전과 이미지 처리를 위한 오픈소스 라이브러리로, 다양한 컴퓨터 비전 작업을 쉽게 수행할 수 있습니다. 이번에는 OpenCV를 이용하여 눈을 인식하는 방법에 대해 알아보겠습니다.

1. OpenCV 설치하기

pip install opencv-python

위의 명령어를 사용하여 OpenCV를 설치할 수 있습니다.

2. 눈 인식 코드 작성하기

import cv2

# 이미지 경로 지정하기
image_path = "image.jpg"

# 이미지 읽어오기
image = cv2.imread(image_path)

# grayscale 이미지로 변환하기
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 얼굴 검출기 로드하기
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# 얼굴 검출하기
faces = face_cascade.detectMultiScale(gray_image, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

# 얼굴 주변에 눈 검출하기
for (x, y, w, h) in faces:
    roi_gray = gray_image[y:y + h, x:x + w]
    roi_color = image[y:y + h, x:x + w]
    
    eyes = eye_cascade.detectMultiScale(roi_gray)
    for (ex, ey, ew, eh) in eyes:
        cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 0, 255), 2)

# 결과 이미지 보여주기
cv2.imshow("Eyes Detected Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

위의 코드는 주어진 이미지에서 얼굴을 먼저 검출하고, 이후에 얼굴 주변에 있는 눈을 검출하여 사각형으로 표시하는 예제입니다.

3. 샘플 이미지 및 결과

아래는 사용된 샘플 이미지와 결과입니다.

Sample Image

Result

4. 참고 자료