OpenCV关于hog特征向量的个数

转载 2013年12月01日 22:15:09

转载来自:http://gz-ricky.blogbus.com/logs/85326280.html



  • 今天脑袋终于开窍了, 把hog的特征个数弄懂了一点
     
    其实原理是很简单的, 在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 不一定为整数
    在compute函数中可以看到:
        padding.width = (int)alignSize(std::max(padding.width, 0), cacheStride.width);
        padding.height = (int)alignSize(std::max(padding.height, 0), cacheStride.height);
    即padding的大小会自动适应stride的值.
    gz_ricky输入的图片是96*160的, 对应了5.6 * 5, 经函数调整后变成6 * 5 =30
     
     所以对这张96*160的图片, 共有105840个特征向量
     
    PS. 如果设置了padding的值, 图片就会先伸展padding*2, 或许是和内部那个paddingTL和paddingBR两个有关, 即在Top-Left和Button-Right两个方向都扩展. 计算特征数方法同上.
     

    hog特征值会生成以后,  可以转入svm训练的阶段了..


相关文章推荐

HOG特征提取代码(opencv处理基本数据,c语言实现基本算法)

#include #include using namespace cv; using namespace std; IplImage *bgrtogrey(IplImage*img) { ...

使用opencv作物件识别(一) —— 积分直方图加速HOG特征计算

注:转自  http://grunt1223.iteye.com/blog 方向梯度直方图(Histograms of Oriented Gradients,简称HOG特征)结合支持向量机( sup...

opencv-积分直方图加速HOG特征计算

注:转自  http://grunt1223.iteye.com/blog 方向梯度直方图(Histograms of Oriented Gradients,简称HOG特征)结合支持向量机( sup...

OpenCV_HOG特征维数计算

hog(cv::Size(64,48),cv::Size(8,6),cv::Size(8,6),cv::Size(4,3),9);   其中,cvSize(64,48)表示窗口的大小,cvSize(8...

OpenCV中HOG特征的提取实现

OpenCV版本2.3.1 hog头文件:opencv\modules\objdetect\include\opencv2\objdetect中的objdetect.hpp hog实现文件:openc...

Opencv HOG特征函数简介

本文为博主原创文章,未经博主允许不得转载。 最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类...

HOG特征与opencv类实现

1、HOG算子定义 HOG又叫梯度直方图特征,是一种对图像局部重叠区域的密集型描述符, 它通过计算局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人...

目标检测—HOG特征和OpenCV中的实现

转载请注明出处!!!http://blog.csdn.net/zhonghuan1992 目标检测—HOG特征和OpenCV中的实现 关于HOG特征可以看http://blog.csdn.net/zo...

OpenCV——HoG特征

转自http://hi.baidu.com/icekeydnet/blog/item/4555173d265e9aea3b87ce67.html hog是一个基于梯度的直方图提取算法,用于人体检...

HOG特征显示C++ OpenCV代码

参考:http://download.csdn.net/detail/u011285477/9472067 #include #include #include #include ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCV关于hog特征向量的个数
举报原因:
原因补充:

(最多只允许输入30个字)