Opencv得到HOG特征(HOGDescriptor 的使用)

个人觉得很多的博客都是从这里抄的: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 不一定为整数。

希望详细学习的可以参考上面的第一个链接。

希望有帮到你!

时间: 2024-10-10 01:17:59

Opencv得到HOG特征(HOGDescriptor 的使用)的相关文章

OpenCV的HOG+SVM训练程序注意事项

行人训练:http://www.tuicool.com/articles/MvYfui 字符识别:http://www.haogongju.net/art/2328003 用OpenCV使用HOG特征进行SVM算法训练的大概流程是 1)设置训练样本集 需要两组数据,一组是数据的类别,一组是数据的向量信息. 2)设置SVM参数,参考<机器模式->libSVM之参数说明> 注意必须使用线性SVM进行训练,因为检测函数只支持线性检测!!! 3)使用HOGDescriptor计算hog特征 4)

Opencv学习之路—Opencv下基于HOG特征的KNN算法分类训练

在计算机视觉研究当中,HOG算法和LBP算法算是基础算法,但是却十分重要.后期很多图像特征提取的算法都是基于HOG和LBP,所以了解和掌握HOG,是学习计算机视觉的前提和基础. HOG算法的原理很多资料都可以查到,简单来说,就是将图像分成一个cell,通过对每个cell的像素进行梯度处理,进而根据梯度方向和梯度幅度来得到cell的图像特征.随后,将每个cell的图像特征连接起来,得到一个BLock的特征,进而得到一张图片的特征.Opencv当中自带HOG算法,可以直接调用,进行图像的特征提取.但

利用opencv的hog+svm实现细胞识别分类器

利用opencv的hog+svm实现细胞识别分类器 图像处理中的细胞识别和人脸识别可以这样来类比,图像中的一张张人脸就是一个个细胞. 模式识别的关键在于样本库的选取,识别率也只能在和样本库比较接近的环境下才能保证.主要工作是三部分一是特征提取,二是样本库的训练train,三是目标检测detect. 一.特征提取 特征提取采用的是HOG特征即HOG描述子,该特征在行人检测中效果非常好.而一般人脸识别采用的是haar特征,这在opencv中都有实现,并都给出了相应的分类器,效果都很不错. 首先采集了

paper :80 目标检测的图像特征提取之(一)HOG特征

1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的梯度方向直方图来构成特征.Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功.需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主. (1)主

目标检測的图像特征提取之(一)HOG特征

1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检測的特征描写叙述子.它通过计算和统计图像局部区域的梯度方向直方图来构成特征.Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检測中获得了极大的成功.须要提醒的是,HOG+SVM进行行人检測的方法是法国研究人员Dalal在2005的CVPR上提出的,而现在尽管有非常多行人检測算法不断提出,但基本都是以HOG+SVM的思路为主. (

HOG特征经典分析汇总

网上很多这方面的内容,下面可以直接点击链接的.比如: 1  hog源码分析: 2  HOG特征描述算子: 3 OpenCV HOGDescriptor 参数图解: 4 利用Hog特征和SVM分类器进行行人检测: 5 opencv cvhog详解: 6 HOG特征-理解篇: 7 目标检测的图像特征提取之(一)HOG特征: 8 HOG特征: 9 Histogram of Oriented Gridients(HOG) 方向梯度直方图: 10 基于HOG特征的Adaboost行人检测. 版权声明:本文

利用Hog特征和SVM分类器进行行人检测

在2005年CVPR上,来自法国的研究人员Navneet Dalal 和Bill Triggs提出利用Hog进行特征提取,利用线性SVM作为分类器,从而实现行人检测.而这两位也通过大量的测试发现,Hog+SVM是速度和效果综合平衡性能较好的一种行人检测方法.后来,虽然很多研究人员也提出了很多改进的行人检测算法,但基本都以该算法为基础框架.因此,Hog+SVM也成为一个里程表式的算法被写入到OpenCV中.在OpenCV2.0之后的版本,都有Hog特征描述算子的API,而至于SVM,早在OpenC

HOG特征(Histogram of Gradient)总结(转载)

整理一下我个人觉得比较好的HOG博文 博文1:OpenCV HOGDescriptor: 参数与图解 http://blog.csdn.NET/raodotcong/article/details/6239431 博文2:opencv源码解析:各个参数讲解 http://www.cnblogs.com/tornadomeet/archive/2012/08/15/2640754.html 博文3:hog特征可视化:matlab 与 C++ http://blog.csdn.Net/u011285

HOG参数简介及Hog特征维数的计算(转)

HOG构造函数 CV_WRAP HOGDescriptor() :winSize(64,128), blockSize(16,16), blockStride(8,8),      cellSize(8,8),nbins(9), derivAperture(1), winSigma(-1), histogramNormType(HOGDescriptor::L2Hys),L2HysThreshold(0.2), gammaCorrection(true), nlevels(HOGDescript