opencv와 python에서 초보자이며 이미지 내의 얼굴의 키포인트와 설명자를 수집하려고합니다.opencv와 python : 마스크를 사용하여 cv2.surf()를 사용하는 방법
나는 정면 얼굴 템플릿이있는 HAAR 캐스케이드 분류기를 사용하여 이미지의 얼굴을 찾습니다. HAAR 캐스케이드는 나에게 이미지의 얼굴을 표시하는 좌표 목록을 제공합니다. 그 좌표에서 "마스크"를 생성하여 cv2.surf()
을 사용하여 마스크 된 영역 내에서 키포인트와 설명자를 추출 할 수 있습니다.
나는 그 마스크를 만드는 법을 모른다.
예를 들어 작업하려면 this photo을 시도하십시오. 내가 faceRegions
를 사용하여 마스크 서핑 추출을하고 싶습니다이 후
import cv2
import numpy as np
# Load image and convert to grayscale
img = cv2.imread('testPhoto.jpg')
imgg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Look for faces in the image
cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
faceRegions = cascade.detectMultiScale(imgg)
: 여기
는 지금까지 코드입니다. 이 같은faceRegions
모습을 가정 :
array([[488, 163, 91, 91],
[357, 184, 93, 93],
[154, 78, 107, 107]], dtype=int32)
imgg
에있는 세 개의 얼굴은 내가 그들의 특정한 폭과 높이가 특정 위치에서 세 개의 마스크를 만들 있었다. 그리고 cv2.surf()
마스크가 적용된 영역 만 보입니다. 어떻게해야합니까?
그래, 나는 그것을 많이 생각하고 그렇게했다. 고맙습니다. 이미지의 지정된 영역에 마스크를 배치하는 방법을 생각해보십시오. – samkhan13
작동하는 경우 대답을 수락하고 닫을 수 있습니다. 또한 동일한 절차를 사용하여 배치 할 수 있습니다. 예 :'img2 [y : y + height, x : x + width] = face1' 여기서 img2는 새로운 이미지이고, y, x는 새로운 위치이지만 width와 height는 face1과 동일해야합니다 1. –
네, 가장 간단한 방법이라고 생각합니다. 다시 감사합니다 :) – samkhan13