Я пытаюсь получить минимально возможный размер лица, извлеченного из изображения. Я хочу минимизировать размер нарисованного прямоугольника, который определяет лицо. Например:
Входное изображение:
Требуемый вывод:
Исходный код:
import numpy as np
import cv2
face_cascade =cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img=cv2.imread('swaa.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3,5,maxSize=(150,150))
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
cv2.imwrite("imgg1.png",roi_color)
cv2.imwrite("imggg1.png",roi_gray)
cv2.imshow('img',img)
cv2.imwrite("img1.png",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Источник изображения: https://www.researchgate.net/publication/322649666_Emotion_Recognition_from_Facial_Expressions_using_Hybrid_Feature_Descriptors
Обновление: используя опубликованное решение, результаты показаны ниже: