私はopencvとpythonの初心者で、画像内の顔のキーポイントと記述子を収集しようとしています.
HAAR カスケード分類子と正面顔テンプレートを使用して、画像内の顔を探しています。HAAR カスケードは、画像内の顔をマークする座標のリストを提供します。cv2.surf()
マスクされた領域内のキーポイントと記述子を抽出するために使用できるように、これらの座標で「マスク」を生成したいと考えています。
マスクの作り方がわかりません。
作業の例として、この写真を試してください。
これまでのコードは次のとおりです。
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)
この後、 を使用してマスクで SURF 抽出を行いたいと思いfaceRegions
ます。次faceRegions
のように見えるとします。
array([[488, 163, 91, 91],
[357, 184, 93, 93],
[154, 78, 107, 107]], dtype=int32)
3 つの顔が見つかったimgg
ので、特定の幅と高さで特定の場所に 3 つの個別のマスクを作成したいと考えています。そしてcv2.surf()
、マスクされた領域だけを見てください。どうやってやるの?