2
我是opencv和python的新手,並且試圖收集圖像中關鍵點和描述符。opencv和python:如何使用cv2.surf()和掩碼
我使用HAAR級聯分類器和正面人臉模板在圖像中查找人臉。 HAAR級聯給我一個標記圖像中面部的座標列表。我想在這些座標上生成一個「蒙版」,以便我可以使用cv2.surf()
來提取蒙版區域內的關鍵點和描述符。
我不知道如何創建該掩碼。
嘗試this photo作爲一個例子來工作。
這是迄今爲止代碼:
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)
有在imgg
發現的三個面,所以我想創建他們的具體位置三個獨立的口罩其特定的寬度和高度。然後cv2.surf()
只看在蒙面的地區。我怎樣才能做到這一點?
是的,我想了很多,做到了。謝謝。儘管你可以想辦法在圖像的特定區域放置蒙版嗎? – samkhan13
如果它適合您,您可以接受答案並關閉它。另外,您可以使用相同的過程來放置它。例如'img2 [y:y + height,x:x + width] = face1'其中img2是您的新圖像,y,x是新位置,但寬度和高度應與您的face1相同。 –
是的,我猜這是最簡單的方法。再次感謝你 :) – samkhan13