• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: Matlab
  • 标签: matlab  HOG特征  

资源简介

利用matlab画出HOG特征的三维图,很形象的说明HOG特征,这是教学、实验、论文必备的呈现HOG特征的程序

资源截图

代码片段和文件信息


clear all; close all; clc;

img=double(imread(‘C:\\Users\\lihaibiao\\Desktop\\test\\David0.jpg‘));
imshow(img[]);
[m n]=size(img);

img=sqrt(img);      %伽马校正

%下面是求边缘
fy=[-1 0 1];        %定义竖直模板
fx=fy‘;             %定义水平模板
Iy=imfilter(imgfy‘replicate‘);    %竖直边缘
Ix=imfilter(imgfx‘replicate‘);    %水平边缘
Ied=sqrt(Ix.^2+Iy.^2);              %边缘强度
Iphase=Iy./Ix;              %边缘斜率,有些为inf-infnan,其中nan需要再处理一下


%下面是求cell
step=16;                %step*step个像素作为一个单元
orient=9;               %方向直方图的方向个数
jiao=360/orient;        %每个方向包含的角度数
Cell=cell(11);              %所有的角度直方图cell是可以动态增加的,所以先设了一个
ii=1;                      
jj=1;
for i=1:step:m          %如果处理的m/step不是整数,最好是i=1:step:m-step
    ii=1;
    for j=1:step:n      %注释同上
        tmpx=Ix(i:i+step-1j:j+step-1);
        tmped=Ied(i:i+step-1j:j+step-1);
        tmped=tmped/sum(sum(tmped));        %局部边缘强度归一化
        tmpphase=Iphase(i:i+step-1j:j+step-1);
        Hist=zeros(1orient);               %当前step*step像素块统计角度直方图就是cell
        for p=1:step
            for q=1:step
                if isnan(tmpphase(pq))==1  %0/0会得到nan,如果像素是nan,重设为0
                    tmpphase(pq)=0;
                end
                ang

评论

共有 条评论