Как я могу изменить размер изображения, где лицо должно быть обрезано и масштабировано, чтобы соответствовать размеру?

Моя веб-камера принимает изображения. Но гендерная классификация opencv требует, чтобы изображения были того же размера, что и изображения, используемые для обучения. Поэтому мне нужно, чтобы изображения с веб-камеры были размером 300х300, чтобы лицо на изображениях с веб-камеры соответствовало разрешению 300х300.
Я идентифицировал лицо на изображении с веб-камеры с помощью каскадных классификаторов лиц opencv.
Но как я могу обрезать это лицо, чтобы соответствовать размеру 300×300?
Пожалуйста, помогите с некоторыми строками кода, поскольку я новичок в opencv.

0

Решение

Вот небольшой образец, который поможет вам обрезать и изменить размер вашего лица:

#include <opencv2\opencv.hpp>
using namespace cv;

int main()
{
Mat3b img = imread("path_to_image");

// You find the rectFace through face detection
// Here the values are hardcoded
Rect rectFace(235, 30, 45, 55);

Mat3b detection = img.clone();
rectangle(detection, rectFace, Scalar(0,255,0));

// Crop the image
Mat3b face(img(rectFace));

// Resize the face to 300x300
Mat3b resized;
resize(face, resized, Size(300,300), 0.0, 0.0, INTER_LANCZOS4);

// Apply gender classification on resized

imshow("Detection", detection);
imshow("Face", face);
imshow("Resized", resized);
waitKey();

return 0;
}

Обнаруженное лицо:

введите описание изображения здесь

Обрезанное лицо:

введите описание изображения здесь

Изменение размера лица:

введите описание изображения здесь

1

Другие решения