0

私のウェブカメラは画像を撮ります。ただし、opencv の性別分類では、トレーニングに使用される画像と同じサイズの画像が必要です。したがって、ウェブカメラ画像の顔が解像度 300x300 に収まるように、ウェブカメラ画像を 300x300 にする必要があります。
opencv 顔カスケード分類子を使用して、ウェブカメラ画像内の顔を識別しました。
しかし、その顔を 300x300 のサイズに収めるにはどうすればよいでしょうか?
私はopencvが初めてなので、いくつかのコード行を手伝ってください。

4

1 に答える 1

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

検出された顔:

ここに画像の説明を入力

トリミングされた顔:

ここに画像の説明を入力

顔のサイズ変更:

ここに画像の説明を入力

于 2015-07-14T11:49:29.073 に答える