2015-07-14 3 views
0

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

+0

http://docs.opencv.org/master/d7/d8b/tutorial_py_face_detection.html дает вам ограничительную рамку лица. Просто обрезайте внутреннюю часть этого окна, перетащите его на 300x300 пикселей и примените свою гендерную классификацию. – LSA

ответ

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; 
} 

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

enter image description here

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

enter image description here

измененных размеров лицо:

enter image description here