資源簡介
效果很好的行人檢測程序 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“?< }
//?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? cv::Rect?r?=?regions[i];
int?j?=?0;
for?(;?j? if?(j?!=?i?&&?(r?&??regions[j])?==?r)
break;
}
if?(j?==?regions.size()){
foundRect.push_back(r);
}
}
//?顯示??
for?(size_t?i?=?0;?i? {
cv::rectangle(image?regions[i]?cv::Scalar(0?0?255)?2);
}
cv::imshow(“hog“?image);
//統計所用時間
t?=?getTickCount()?-?t;
t?=?t?*?1000?/?getTickFrequency();
cout?<“運行時間:“?< cv::waitKey(0);
return?0;
}*/
#include?
#include?
#i
評論
共有 條評論