#include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<opencv2/objdetect.hpp> #include<iostream> using namespace std; using namespace cv; int main(int argc, char **argv) { Mat img; //读取图片 img = imread("D:\\b.png", 1); //HOG特征检测器 HOGDescriptor defaultHog; //设置SVM分类器 defaultHog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector()); //矩形框数组 vector<Rect> found, found_filtered; //对图像进行多尺度检测 defaultHog.detectMultiScale(img, found); //detectMultiScale(const Mat& image,CV_OUT vector<Rect>& objects,double scaleFactor = 1.1,int minNeighbors = 3,int flags = 0,Size minSize = Size(),Size maxSize = Size()); //待检测图片,被检测物体的矩形框向量组,搜索窗口的比例系数, //输出矩形个数 cout << "矩形个数:" << found.size() << endl; // 找出所有没有嵌套的矩形框r,并放入found_filtered中,如果有嵌套的话,则取外面最大的那个矩形框放入found_filtered中 for (int i = 0; i < found.size(); i++) { Rect r = found[i]; int j = 0; for (; j < found.size(); j++) if (j != i && (r & found[j]) == r) //按位与操作 break; if (j == found.size()) found_filtered.push_back(r); } cout << "过滤后矩形的个数:" << found_filtered.size() << endl; //画出矩形框 for (int i = 0; i<found_filtered.size(); i++) { Rect r = found[i]; rectangle(img, r.tl(), r.br(), Scalar(0, 255, 0), 3); } namedWindow("Detect pedestrain", WINDOW_AUTOSIZE); imshow("Detect pedestrain", img); waitKey(0); return 0; }
小编把行人检测1的代码运行后的结果给导师看,导师说要解决这个问题,需要合并窗口。小编并不知道合并窗口是什么意思,所以上网搜了搜,找到了一段代码插了进去,发现矩形框多出的问题解决了。以上是小编新写的代码,对比前一篇,只是多了一段代码。
小编又定义了一个新的矩形框,用for循环,找出所有没有嵌套的矩形框r,并放入found_filtered中,如果有嵌套的话,则取外面最大的那个矩形框放入found_filtered中。然后在画矩形框的时候,画出外面最大的那个矩形框。
结果如下图所示,两个行人刚好两个框,上一篇(行人检测1)的问题解决了。
相关推荐
OPENCV行人检测HOG+SVM检测视频中是否有人.zip资源matlab opencv运动目标检测程序资料OPENCV行人检测HOG+SVM检测视频中是否有人.zip资源matlab opencv运动目标检测程序资料OPENCV行人检测HOG+SVM检测视频中是否有人....
opencv_目标检测_OPENCV行人检测HOG+SVM检测视频中是否有人_HOG_SVM_行人检测_人体检测_VC++
OPENCV行人检测HOG+SVM检测视频中是否有人 OPENCV行人检测HOG+SVM检测视频中是否有人 OPENCV行人检测HOG+SVM检测视频中是否有人 OPENCV行人检测HOG+SVM检测视频中是否有人 OPENCV行人检测HOG+SVM检测视频中是否有人
OPENCV目标跟踪OPENCV行人检测HOG+SVM检测视频中是否有人提取方式是百度网盘分享地址
基于opencv中HOG+SVM的分类识别
NULL 博文链接:https://854369721.iteye.com/blog/2430710
在2005年CVPR上,来自法国的研究人员Navneet Dalal 和Bill Triggs提出利用Hog进行特征提取,利用线性SVM作为分类器,从而实现行人检测。而这两位也通过大量的测试发现,HOG +SVM是速度和效果综合平衡性能较好的一种...
在OpenCV3.4.1上使用hog+svm实现了数字识别,提供了检测与训练部分,训练已经训练,可以直接运行。
基于OpenCV 通过HOG+SVM训练INRIAPerson行人数据库进行行人检测源码+使用文档+全部资料(优秀项目)基于OpenCV 通过HOG+SVM训练INRIAPerson行人数据库进行行人检测源码+使用文档+全部资料(优秀项目) 【备注】 1、...
HOG+SVM (已经验证)
HOG+SVM手势识别可运行程序,识别车。编译时要把opencv设置好。核心程序C++,不是采用opencv
NULL 博文链接:https://854369721.iteye.com/blog/2434360
本资源为HOG+SVM实现的行人检测系统,包括完整的训练、检测和测试程序。检测程序运行环境为VS2013+opencv2.4.13和QT+opencv3.1.0,测试程序运行环境为matlab2016,具体运行方法见资源中的.txt说明文件。
基于Hog特征+SVM分类器,利用Opencv3.0进行手写数字识别的源代码及所需资源文件(训练图片、测试图片)
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
C++2013+OpenCV2413环境下,自己训练svm分类器包括一些测试图片以及测试结果 刚开始实验样本量不是很多 亲测有效 现在想进行视频行人检测 有大神可以留下联系方式 有问题请教
文档包含了自己利用HOG+SVM制作样本和训练分类器的软件,以及基于C++和opencv实现的HOG+SVM源代码
毕业设计_使用opencv+hog+svm开发的行人检测项目_训练一体_项目实战_项目源码_优质项目