Моя веб-камера принимает фотографии. Но для гендерной классификации opencv изображения должны иметь тот же размер, что и изображения, используемые для обучения. Поэтому мне нужно, чтобы мои изображения в веб-камерах были 300x300, где лицо в изображениях веб-камеры соответствовало разрешению 300x300.
Я идентифицировал лицо в изображении веб-камеры, используя классификаторы каскадов лицевой стороны opencv.
Но как я могу обрезать это лицо в соответствии с размером 300x300?
Пожалуйста, помогите с некоторыми строками кода, поскольку я новичок в opencv.Как изменить размер изображения, в котором лицо должно быть обрезано и масштабировано в соответствии с размером?
0
A
ответ
1
Вот небольшой пример, который поможет вам обрезать и изменять их размер граней:
#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;
}
Обнаружен лицо:
Обрезанные лицо:
измененных размеров лицо:
http://docs.opencv.org/master/d7/d8b/tutorial_py_face_detection.html дает вам ограничительную рамку лица. Просто обрезайте внутреннюю часть этого окна, перетащите его на 300x300 пикселей и примените свою гендерную классификацию. – LSA