Opencv得到HOG特征(HOGDescriptor 的使用)
2014-11-27 18:00
218 查看
个人觉得很多的博客都是从这里抄的:http://www.cnblogs.com/justany/archive/2012/12/03/2790548.html
直接说怎么用吧。
包含头文件:和一般的opencv程序无特殊的区别
需要加入的库:opencv_objdetect244.lib(realease中的 debug加一个d,配置的人应该都懂)
基本的使用:(两行代码)
HOGDescriptor *desc=new HOGDescriptor(cvSize(40,80),cvSize(10,20),cvSize(5,10),cvSize(5,5),9);
desc->compute(img,w,cvSize(10,20),cvSize(0,0));
通过上面的操作你得到的特征也就被存储在Vector
W 里面了。如果你要使用,到这里就足够了!
下面是基本的原理的讲解:(参考:http://gz-ricky.blogbus.com/logs/85326280.html)
原理是很简单的, 在OpenCV实现的是R-HOG, 即对图像img->窗口window->块block->细胞单元cell进行向量统计
首先看描述器的构造函数, 我用
HOGDescriptor *desc=new HOGDescriptor(cvSize(40,80),cvSize(10,20),cvSize(5,10),cvSize(5,5),9);
这里的window为(40, 80), block为(10, 20), block的步进stride是(5, 10), 细胞单元cell是5 * 5像素, 每个cell的直方图bin是9.
于是,
对每一个cell, 有9个向量
对每一个block, 有2*4个cell, 所以有72个向量
对于window而言, 计算block个数的方法是, 对两个方向计算 (window_size - block_size)/block_stride + 1, 算得共有7*7 个block, 共有72*49=3528个向量
在搜索img, 计算图片特征的时候, 调用desc->compute(img,w,cvSize(10,20),cvSize(0,0));
其中img是输入图像, w是保存向量的vector, 第三个是window的步进, 第四个是padding, 用于填充图片以适应大小的.
当设置padding为默认(0,0)时, 计算(img_size - window_size) / window_stride +1 不一定为整数。
希望详细学习的可以参考上面的第一个链接。
希望有帮到你!
直接说怎么用吧。
包含头文件:和一般的opencv程序无特殊的区别
需要加入的库:opencv_objdetect244.lib(realease中的 debug加一个d,配置的人应该都懂)
基本的使用:(两行代码)
HOGDescriptor *desc=new HOGDescriptor(cvSize(40,80),cvSize(10,20),cvSize(5,10),cvSize(5,5),9);
desc->compute(img,w,cvSize(10,20),cvSize(0,0));
通过上面的操作你得到的特征也就被存储在Vector
W 里面了。如果你要使用,到这里就足够了!
下面是基本的原理的讲解:(参考:http://gz-ricky.blogbus.com/logs/85326280.html)
原理是很简单的, 在OpenCV实现的是R-HOG, 即对图像img->窗口window->块block->细胞单元cell进行向量统计
首先看描述器的构造函数, 我用
HOGDescriptor *desc=new HOGDescriptor(cvSize(40,80),cvSize(10,20),cvSize(5,10),cvSize(5,5),9);
这里的window为(40, 80), block为(10, 20), block的步进stride是(5, 10), 细胞单元cell是5 * 5像素, 每个cell的直方图bin是9.
于是,
对每一个cell, 有9个向量
对每一个block, 有2*4个cell, 所以有72个向量
对于window而言, 计算block个数的方法是, 对两个方向计算 (window_size - block_size)/block_stride + 1, 算得共有7*7 个block, 共有72*49=3528个向量
在搜索img, 计算图片特征的时候, 调用desc->compute(img,w,cvSize(10,20),cvSize(0,0));
其中img是输入图像, w是保存向量的vector, 第三个是window的步进, 第四个是padding, 用于填充图片以适应大小的.
当设置padding为默认(0,0)时, 计算(img_size - window_size) / window_stride +1 不一定为整数。
希望详细学习的可以参考上面的第一个链接。
希望有帮到你!
相关文章推荐
- 使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算
- 使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算
- 使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算
- 使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算
- 使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算
- 使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算
- OpenCV3.2.0中使用HOG特征训练SVM分类器时重点注意事项
- 使用openCV提取sift;surf;hog特征
- OpenCV提取HOG特征
- emgu cv hog 特征提取 与opencv 生成的结果略有区别
- openMP的一点使用经验(图像特征提取OpenCV)
- 使用opencv_traincascade训练Haar、HOG、LBP Adaboost分类器
- SVM 在opencv 中的使用及SVM与HOG联合
- 利用OpenCV提取HOG特征需要了解的参数
- OpenCV——HoG特征
- 使用Opencv进行图像特征点检查与匹配
- HOG特征与opencv类实现
- OpenCV中特征检测,提取与匹配使用方法学习
- OpenCV中HOG特征的提取实现
- machine learning(4) --SVM 在opencv 中的使用及SVM与HOG联合