行人检测(图片)
//本代码只能在Release模式下运行
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image=imread("1.jpg");
if (image.empty())
{
cout << "--------- 加载图像失败 ----------";
return -1;
}
vector<Rect> found;
HOGDescriptor defaultHog;
//设置线性SVM分类器系数
defaultHog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
//多尺度检测目标
defaultHog.detectMultiScale(image,found,0,Size(8,8), Size(32,32),1.1,2.0,false);
// 画出长方形,框出人
for (int i = 0; i < found.size(); i++)
{
Rect r=found[i];
rectangle(image, r.tl(), r.br(), Scalar(0,255,0), 1,CV_AA);
}
cout << "people size:" << found.size() <<endl;
namedWindow("Detect pedestrain", WINDOW_AUTOSIZE);
imshow("Detect pedestrain", image);
waitKey(0);
return 0;
}
Release模式运行效果图
![](https://i-blog.csdnimg.cn/blog_migrate/5bcc13e2a2e2523bb78921a0a4206073.png)
Debug模式运行效果图
![](https://i-blog.csdnimg.cn/blog_migrate/03627fded69e8443e05becae6f753c2c.png)