利用opencv中HOGDescriptor类的行人检测接口进行 行人检测

利用 HOGDescriptor 这个类,其中有现成的行人检测的接口( gpu::HOGDescriptor::getDefaultPeopleDetector ),利用这个接口我们可以直接获得人的分类训练检测的默认系数,进而检测出行人。

先上代码,剩下的逐步完善。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/gpu/gpu.hpp>

#include <stdio.h>

using namespace cv;

int main(int argc, char** argv){
    Mat img;
    vector<Rect> found;

     img = imread(argv[1]);

    if(argc != 2 || !img.data){
        printf("没有图片\n");
        return -1;
    }

    HOGDescriptor defaultHog;
    defaultHog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());

    //进行检测
    defaultHog.detectMultiScale(img, found);

    //画长方形,框出行人
    for(int i = 0; i < found.size(); i++){
        Rect r = found[i];
        rectangle(img, r.tl(), r.br(), Scalar(0, 0, 255), 3);
    }

    
    namedWindow("检测行人", CV_WINDOW_AUTOSIZE);
    imshow("检测行人", img);

    waitKey(0);

    return 0;
}


猜你喜欢

转载自blog.csdn.net/qq_35859033/article/details/81022248