티스토리 뷰

 

import cv2
import dlib

# 이미지 파일 경로
image_file = "test.jpg"

# 얼굴 탐지기
detector = dlib.get_frontal_face_detector()

# 얼굴 특징점 예측기
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")

# 이미지 읽기
image = cv2.imread(image_file)

# 얼굴 탐지
faces = detector(image)

# 각 얼굴에 대해 특징점 예측
for face in faces:
    landmarks = predictor(image, face)

    # 눈, 코, 입 등의 위치 추출
    left_eye = (landmarks.part(36).x, landmarks.part(36).y)
    right_eye = (landmarks.part(45).x, landmarks.part(45).y)
    nose = (landmarks.part(30).x, landmarks.part(30).y)
    mouth_left = (landmarks.part(48).x, landmarks.part(48).y)
    mouth_right = (landmarks.part(54).x, landmarks.part(54).y)

    # 추출된 위치에 원 그리기
    cv2.circle(image, left_eye, 3, (0, 255, 0), -1)
    cv2.circle(image, right_eye, 3, (0, 255, 0), -1)
    cv2.circle(image, nose, 3, (0, 255, 0), -1)
    cv2.circle(image, mouth_left, 3, (0, 255, 0), -1)
    cv2.circle(image, mouth_right, 3, (0, 255, 0), -1)

# 이미지 출력
cv2.imshow("Output", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

[설명 ]

위 코드에서 image_file 변수에 이미지 파일 경로를 지정하고, shape_predictor_68_face_landmarks.dat 파일은 dlib 라이브러리에서 제공하는 얼굴 특징점 예측 모델입니다. 이 파일은 다음 링크에서 다운로드 받을 수 있습니다: http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

위 코드를 실행하면 이미지에서 각 얼굴의 눈, 코, 입 등의 위치를 원으로 표시한 이미지가 출력됩니다. 이미지 창에서 아무 키나 누르면 종료됩니다.

 

반응형
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함