HOG+SVM
发布日期:2021-11-07 18:53:25
浏览次数:1
分类:技术文章
本文共 1866 字,大约阅读时间需要 6 分钟。
#include#include #include using namespace std;using namespace cv;using namespace cv::ml;int main(){ //文件路径的前缀 string PrePath = "C:/Users/GuSheng/Desktop/photo/pedestrians128x64/"; //文件名字的前缀 string PreFileName1 = "per0000"; string PreFileName2 = "per000"; ostringstream is; vector filename;//保存文件的名字 filename.clear(); //文件的个数为20 int total = 20; for (int i = 1; i <= total;++i) { is.str("");//这句话是必须的 is << i; if (i<=9) { filename.push_back(PrePath + PreFileName1 + is.str() + ".ppm"); } else { filename.push_back(PrePath + PreFileName2 + is.str() + ".ppm"); } } //开始进行HOG检测 //影像的大小为64*128 块的大小为16*16 块的步长为8 cell的大小为8*8 bin的大小为9 //则一副影像的特征向量为 7*15*4*9=3780 Mat DataMat = Mat::zeros(total, 3780, CV_32FC1); Mat labelMat = Mat::zeros(total, 1, CV_32SC1); for (size_t i = 0; i < filename.size();++i) { vector descriptor; descriptor.clear(); Ptr hog = new HOGDescriptor(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9); Mat img = imread(filename[i], IMREAD_GRAYSCALE); if (img.empty()) { continue; } hog->compute(img, descriptor, Size(1, 1)); //填充样本数据 for (size_t j = 0; j < descriptor.size();++j) { DataMat.at (i, j) = descriptor[j]; } labelMat.at (i, 0) = i+1; } //开始进行训练 Ptr svm = SVM::create(); svm->setType(SVM::C_SVC); svm->setKernel(SVM::LINEAR); svm->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 100, 1e-06)); //开始进行训练 svm->train(DataMat, ROW_SAMPLE, labelMat); svm->save("SVM_people.xml"); string testName = "C:/Users/GuSheng/Desktop/photo/pedestrians128x64/per00012.ppm"; Mat testImg = imread(testName, IMREAD_GRAYSCALE); if (testImg.empty()) { return -1; } Ptr hog = new HOGDescriptor(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9); vector descriptor; hog->compute(testImg, descriptor); int ret = svm->predict(descriptor); cout << ret << endl; return 0;}
转载地址:https://blog.csdn.net/zhanggusheng/article/details/71104767 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年03月26日 08时24分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Leetcode刷题篇】leetcode136 只出现一次的数字
2019-04-26
spring boot整合thymeleaf,支持JSP和HTML页面开发
2019-04-26
【Java网络编程与IO流】Spring boot整合SSE实现服务器实时推送流信息
2019-04-26
【Leetcode刷题篇】leetcode141 环形链表II
2019-04-26
【Leetcode刷题篇】leetcode160 相交链表
2019-04-26
【Leetcode刷题篇】leetcode169 多数元素
2019-04-26
【Leetcode刷题篇】leetcode461 汉明距离
2019-04-26
【Leetcode刷题篇】leetcode204 计数质数
2019-04-26
【Leetcode刷题篇】leetcode70 爬楼梯
2019-04-26
【Leetcode刷题篇】leetcode739 每日温度
2019-04-26
【Leetcode刷题篇】leetcode121买卖股票的最佳时机
2019-04-26
【面试篇】Java多线程并发-Java关键字volatile详解
2019-04-26
【面试篇】Java的代理模式-静态代理和动态代理详解
2019-04-26
【面试篇】 Java对象拷贝(对象克隆 对象复制)
2019-04-26
【Leetcode刷题篇】leetcode64 最小路径和
2019-04-26
【Leetcode刷题篇】leetcode79 单词搜索
2019-04-26
【Leetcode刷题篇】leetcode300 最长上升子序列
2019-04-26
【Leetcode刷题篇】leetcode394 字符串解码
2019-04-26
【Leetcode刷题篇】leetcode152 乘积最大数组
2019-04-26