hlayumi的个人空间 https://blog.eetop.cn/hslogic [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

基于MATLAB的HOG特征提取实现

已有 21514 次阅读| 2017-8-13 14:20 |系统分类:硬件设计

function HOGvector=HOG(Img)
Img=imresize(Img,[24 80]);
% figure (1), subplot(2,2,1), imshow(Img)
Img=im2single(Img);
gh = imfilter(Img,fspecial('sobel') /8,'replicate');
gv = imfilter(Img,fspecial('sobel')'/8,'replicate');
% figure (1), subplot(2,2,2), imshow(gv)
% figure (1), subplot(2,2,3), imshow(gh)
[theta rho]=cart2pol(gh,gv);
% figure (1), subplot(2,2,4), imshow(rho)
HOGvector=zeros(16,18);
n=0;
m=0;
for i=1:16
    if(mod(i,4)==1)
        m=m+1;
        n=0;
    end
    n=n+1;
    for j=1:20
        for k=1:6
            if(theta(((m-1)*6+k),((n-1)*20+j))<(-8*pi/9))
                HOGvector(i,1)=HOGvector(i,1)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(-7*pi/9))
                HOGvector(i,2)=HOGvector(i,2)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(-6*pi/9))
                HOGvector(i,3)=HOGvector(i,3)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(-5*pi/9))
                HOGvector(i,4)=HOGvector(i,4)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(-4*pi/9))
                HOGvector(i,5)=HOGvector(i,5)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(-3*pi/9))
                HOGvector(i,6)=HOGvector(i,6)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(-2*pi/9))
                HOGvector(i,7)=HOGvector(i,7)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(-1*pi/9))
                HOGvector(i,8)=HOGvector(i,8)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<0)
                HOGvector(i,9)=HOGvector(i,9)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(pi/9))
                HOGvector(i,10)=HOGvector(i,10)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(2*pi/9))
                HOGvector(i,11)=HOGvector(i,11)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(3*pi/9))
                HOGvector(i,12)=HOGvector(i,12)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(4*pi/9))
                HOGvector(i,13)=HOGvector(i,13)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(5*pi/9))
                HOGvector(i,14)=HOGvector(i,14)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(6*pi/9))
                HOGvector(i,15)=HOGvector(i,15)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(7*pi/9))
                HOGvector(i,16)=HOGvector(i,16)+rho(((m-1)*6+k),((n-1)*20+j));
            elseif(theta(((m-1)*6+k),((n-1)*20+j))<(8*pi/9))
                HOGvector(i,17)=HOGvector(i,17)+rho(((m-1)*6+k),((n-1)*20+j));
            else%if(theta(((m-1)*6+k),((n-1)*20+j))<pi)
                HOGvector(i,18)=HOGvector(i,18)+rho(((m-1)*6+k),((n-1)*20+j));
            end
        end
   end
end
end


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 5

    粉丝
  • 0

    好友
  • 1

    获赞
  • 16

    评论
  • 5260

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 14:54 , Processed in 0.015333 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部