• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: hog+SVM  

资源简介

效果很好的行人检测程序 opencv hog SVM

资源截图

代码片段和文件信息

/*#include   
#include   

#include   
#include   
#include   
#include “opencv2/nonfree/features2d.hpp“  
#include  
#include   

using namespace cv;
using namespace std;

int main(int argc char** argv)
{
//测试时间开始
double t;
t = getTickCount();
cv::Mat image = cv::imread(“D:\\行人检测\\正样本\\6.bmp“);
if (image.empty())
{
std::cout << “read image failed“ << std::endl;
}

// 1. 定义HOG对象  
cv::HOGDescriptor hog(cv::Size(48 96) cv::Size(16 16) cv::Size(8 8) cv::Size(8 8) 9 1 -1 cv::HOGDescriptor::L2Hys 0.2 true cv::HOGDescriptor::DEFAULT_NLEVELS);

// 2. 设置SVM分类器  
hog.setSVMDetector(cv::HOGDescriptor::getDaimlerPeopleDetector());   // 采用已经训练好的行人检测分类器  

// 3. 在测试图像上检测行人区域  
std::vector regions foundRect;
hog.detectMultiScale(image regions 0 cv::Size(8 8) cv::Size(8 8) 1.05 2);

//以下为减少嵌套
for (int i = 0; i < regions.size(); i++){
cv::Rect r = regions[i];
int j = 0;
for (; j < regions.size(); j++){
if (j != i && (r &  regions[j]) == r)
break;
}
if (j == regions.size()){
foundRect.push_back(r);
}
}
// 显示  
for (size_t i = 0; i < regions.size(); i++)
{
cv::rectangle(image regions[i] cv::Scalar(0 0 255) 2);
}
cv::imshow(“hog“ image);
//统计所用时间
t = getTickCount() - t;
t = t * 1000 / getTickFrequency();
cout << “运行时间:“ << t / 1000 << “s“ << endl;
cv::waitKey(0);
return 0;
}*/
#include 
#include 
#i

评论

共有 条评论