opencv笔记(6):HOG特征

特征提取之HOG特征

方向梯度直方图(Histogram of Oriented Gradient,HOG)是一种在计算机视觉和图像处理中用来对物体进行检测的特征描述子。

其特征提取的过程为:
(1)灰度化。
(2)采用Gamma校正法对图像进行颜色空间的归一化:是为了调节图像的对比度,降低图像局部的阴影和光照变化造成的影响,同时抑制噪声的干扰。Gamma压缩公式:
一般情况Gamma=1/2。
(3)计算图像每个像素的梯度(大小和方向)。
(4)将图像划分成小cells。
(5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor。目的是为局部图像区域提供一个编码,同时保持对图像中物体对象的姿势和外观敏感性。假如每个cell为6*6个像素,采用9个bin的直方图来统计,即将360度分成9个方向块。若一个像素的梯度方向为20~40度(为第2个bin),梯度大小为1(2),则第2个bin的计数加上1(2)。
(6)每几个cell组成一个block,将block中的所有cell的特征descriptor串联起来就是这个block的HOG特征值。
(7)最后就是统一所有的block得到图像的HOG特征值。

HOGDescriptor(cvSize(64, 48),
cvSize(32, 32),
cvSize(8, 8), 
cvSize(16, 16), 
9);
参数1:滑动窗口的大小。
参数2:block大小。
参数3:block的移动步长。
参数4:cell大小。
参数5:bins个数。

hog->compute(dst,
feature, 
Size(64, 48), 
Size(0, 0));
参数1:输入图像。
参数2:输出的HOG特征向量。
参数3:窗口移动步长。
参数4:图像的padding补偿,有时候图像大小不能整除窗口大小,所以需要在周围补偿像素。

#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <iostream>
#include <objdetect\objdetect.hpp>

using namespace cv;
using namespace std;

int main(){
	Mat img = imread("D:/img/1.jpg");	//	570:700
	Mat dst;
	resize(img, dst, Size(640, 480));	//图像缩放 640:480
	namedWindow("src");
	imshow("src", dst);
	HOGDescriptor *hog = new HOGDescriptor(cvSize(64, 48), cvSize(32, 32),
		cvSize(8, 8), cvSize(16, 16), 9);
	vector<float> feature;
	hog->compute(dst, feature, Size(64, 48), Size(0, 0));
	cout << "result:" << feature.size() << endl;
	waitKey(0);
	return 0;
}
block大小:32*32
cell大小:16*16
block中cell个数:(32*32)/(16*16)=4
bin:9
一个block的维度:4*9=36

滑动窗口大小:64*48
block大小:32*32
block步长:8,8
block横向扫描次数:(64-32)/8+1=5;   block纵向扫描次数:(48-32)/8+1=3;
共扫描:5*3=15次

图像大小:640*480
滑动窗口大小:64*48
窗口移动步长:64,48
窗口横向扫描次数:(640-64)/64+1=10;   窗口纵向扫描次数:(480-48)/48+1=10;
共扫描:10*10=100次

整幅图像的特征维度大小为:36*15*100=54000
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值