一、前言
hog是一个基于梯度的直方图提取算法,最初用于行人检测,效果拔群。之后DPM的出现将行人(目标)检测的准确率产生了巨大的提升。HOG特征提取在opencv2.2+版本里面已经实现。我的另外一篇博客推荐了几个很好的关于理解hog特征的博客。
以下在推荐两个:
http://blog.csdn.net/raocong2010/archive/2011/03/11/6239431.aspx
本文中介绍了opencv中HOGDescriptor构造函数各个参数的含义。
从另外我从http://blog.csdn.net/yangtrees/article/details/7471222 上找来了一段代码。即是使用HOG + SVM 进行图像分类。虽然没有太多注释,但逻辑还是很清楚的。我根据他的代码,把程序中的一些功能函数化了。具体有以下三个文件:
1. hog_svm.h (声明了一些函数)
2. hog_svm.cpp(函数具体实现, 主要内容都在这里)
3. main.cpp(测试程序)
注:在main函数中,trainNames.txt中保存着训练集图像的地址,trainLabels.txt中保存对应的训练集图像标签
testNames.txt中保存测试集图像的地址。