Matlab 提取Hog特征方法详细解析

本文详细介绍了在Matlab中如何提取HOG特征,包括遍历图像文件、ExtrHogFeature函数的使用,参数意义、输入检查、图像灰度化、尺寸校正、方向梯度计算以及积分直方图的计算。文章强调了在特征提取过程中保持图像完整性的原则,并提供了相关函数的简要说明。
摘要由CSDN通过智能技术生成

     前段时间,写了一篇《matlab Hog特征提取浅析》,当时只是完成了对Hog特征提取方法的简单原理分析。最近,我深入地研究了Hog特征的提取方法,并运用积分直方图对其加速。为了便于以后运用,特将这一过程中的构思,方法,问题一一记录下来。

   相关资料:

   1.http://blog.csdn.net/zouxy09/article/details/7929348/
   2.http://blog.csdn.net/xiaowei_cqu/article/details/17928733
   3.http://blog.csdn.net/WLMLBY/article/details/53446943

   提取Hog特征的方法是先把窗口图像分割成cell,再把cell分割成block。然后提取block中各像素点的方向梯度合成直方图,最后把这些block的直方图组合起来就得到了图像的Hog特征。
   下面具体说一下我的编程思路。

   主程序(Main.m):

close all;clear all;clc;

filePath = 'E:\HOG\HogSamples\';
fileExt = '*.bmp';
files = dir(fullfile(filePath,fileExt));
len = size(files,1);
% Generate a test Image.
% testImg = reshape((1:16:256),4,4);
% hogFeature = ExtrHogFeature(testImg,3,3,1,180,9);
for i = 1:len
    tic;
    disp(['----------',num2str(i),'----------'])
    srcImg = imread(strcat(filePath,files(i,1).name));
    hogFeature = ExtrHogFeature(srcImg,5,4,2,360,15);
    toc;
end

   在主程序中,我遍历了指定文件夹下(“E:\HOG\HogSamples\”)的指定后缀名(*.bmp)的文件。并将遍历得到的图像作为窗口图像传递给了ExtrHogFeature函数。ExtrHogFeature函数就是我编写的,用来提取Hog特征的函数。    ExtrHogFeature函数:

function feature = ExtrHogFeature(imgFile,cellStep,blockStep,overlap,angle,binNum)

if nargin < 2
    cellStep = 3;
    blockStep = 4;
    overlap = 1;
    angle = 180;
    binNum = 9;
elseif nargin < 6
    error('Input parameters are not enough.');
elseif overlap < 0 || overlap >= blockStep
    error('The input parameter "overlap" is wrong!');
elseif angle ~= 180 && angle ~= 360
    error('The input parameter "angle" is only 180 or 360!');
end

[h,w,d] = size(imgFile);
if(d ~= 1)
    grayImg = rgb2gray(
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值