Я пытаюсь использовать Haar Cascade OpenCV для обнаружения лиц и вырезания их из изображения. Это работает, но затем я также получаю несколько случайных изображений с разными частями изображения, которые не похожи на лица.
Это мой текущий код:
import cv2
alg = "/content/haarcascade_frontalface_default.xml"
haar_cascade = cv2.CascadeClassifier(alg)
# read the image as grayscale
file_name = '/content/btest.jpg'
img = cv2.imread(file_name, 0)
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
# find the faces in that image
faces = haar_cascade.detectMultiScale(
gray_img,
scaleFactor=1.05,
minNeighbors=2,
minSize=(100, 100)
)
i = 0
for x, y, w, h in faces:
# crop the image to select only the face
cropped_image = img[y : y + h, x : x + w]
target_file_name = 'stored_faces/' + str(i) + '.jpg'
cv2.imwrite(
target_file_name,
cropped_image,
)
i += 1
Я пытаюсь использовать Haar Cascade OpenCV для обнаружения лиц и вырезания их из изображения. Это работает, но затем я также получаю несколько случайных изображений с разными частями изображения, которые не похожи на лица. Это мой текущий код: [code]import cv2 alg = "/content/haarcascade_frontalface_default.xml" haar_cascade = cv2.CascadeClassifier(alg) # read the image as grayscale file_name = '/content/btest.jpg' img = cv2.imread(file_name, 0) gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) # find the faces in that image faces = haar_cascade.detectMultiScale( gray_img, scaleFactor=1.05, minNeighbors=2, minSize=(100, 100) ) i = 0 for x, y, w, h in faces: # crop the image to select only the face cropped_image = img[y : y + h, x : x + w] target_file_name = 'stored_faces/' + str(i) + '.jpg' cv2.imwrite( target_file_name, cropped_image, ) i += 1 [/code] Изображение Результат