首页 > 其他分享 >目标图像的HOG特征提取matlab仿真

目标图像的HOG特征提取matlab仿真

时间:2023-04-06 15:55:25浏览次数:35  
标签:HOG ang end 17 image cell step matlab 特征提取

1.算法描述

HOG特征提取方法就是将一个image(你要检测的目标或者扫描窗口):

 

1)灰度化(将图像看做一个x,y,z(灰度)的三维图像);

 

2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;

 

3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。

 

4)将图像划分成小cells(例如6*6像素/cell);

 

5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor;

 

6)将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。

 

7)将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

 

3.MATLAB核心程序

 

image = imread('apple.1.png');
subplot(1,2,1);
imshow(uint8(image));
 
%2、伽马校正 
title('原图');
[m n]=size(image);
img = double(image);
img=sqrt(img);      
 
%3、下面是求边缘
fy=[-1 0 1];        
fx=fy';             
Iy=imfilter(img,fy,'replicate');   
Ix=imfilter(img,fx,'replicate');   
Ied=sqrt(Ix.^2+Iy.^2);             
Iphase=Iy./Ix;                      
%4、下面是求cell,每个cell求其梯度直方图
step=8;                 
orient=9;              
jiao=360/orient;        
Cell=cell(1,1);         
ii=1;                    
jj=1;
for i=1:step:m-step         
    ii=1;
    for j=1:step:n-step     
        tmpx=Ix(i:i+step-1,j:j+step-1);          
        tmped=Ied(i:i+step-1,j:j+step-1);        
        tmped= tmped / sum( sum(tmped) );        
        tmpphase=Iphase(i:i+step-1,j:j+step-1);  
        Hist=zeros(1,orient);                        
        for p=1:step                             
            for q=1:step
                if isnan(tmpphase(p,q))==1  
                    tmpphase(p,q)=0;        
                end
                ang=atan(tmpphase(p,q));                    
                ang=mod(ang*180/pi,360);   
                if tmpx(p,q)<0              
                    if ang<90               
                        ang=ang+180;       
                    end
                    if ang>270              
                        ang=ang-180;       
                    end
                end
                ang=ang+0.0000001;          
                Hist(ceil(ang/jiao))=Hist(ceil(ang/jiao))+ tmped(p,q);  
            end
        end
        Hist=Hist/sum(Hist);    
        Cell{ii,jj}=Hist;       
        ii=ii+1;               
    end
    jj=jj+1;                    
end
%5、显示准备工作
angle = [40,80,120,160,200,240,280,320,360];
rad = angle*pi/180;
k = tan(rad);      
[m n] = size(Cell)
image_hog = zeros(m*17,n*17);
for x = 1:m-1
    for y = 1:n-1
    intensity = (Cell{x,y}+Cell{x,y+1}+Cell{x+1,y}+Cell{x+1,y+1})*64;
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    end
    %标记      
    for i=1:17
        for j=1:9
         block(X(i),Y(j,i)) =intensity(j);           %
        end
    end
    image_hog((x-1)*17+1:(x-1)*17+17 , (y-1)*17+1:(y-1)*17+17) = block(:,:);
    end
end
image_hog = image_hog';
 
%6、【平滑Hog特征的不规则边缘】高斯平滑
G = [1 2 3 2 1 ;
     2 5 6 5 2 ;
     3 6 8 6 3 ;
     2 5 6 5 2 ; 
     1 2 3 2 1 ;]
conv2(G,image_hog );

 

  

 

标签:HOG,ang,end,17,image,cell,step,matlab,特征提取
From: https://www.cnblogs.com/51matlab/p/17293036.html

相关文章

  • m基于简化后的轻量级yolov4深度学习网络农作物检测算法matlab仿真
    1.算法描述        YOLOv4的深层网络包括SPP模块、PANet模块、YOLOHead模块和部分卷积,其主要作用是加强目标特征提取并获取预测结果。SPP模块的输入端和输出端各连接一个三次卷积块,每个三次卷积块包含2个1×1卷积和1个3×3卷积。PANet模块包含特征层堆......
  • m基于HMM和博弈模型的LSTM互联网情感词性分类识别matlab仿真
    1.算法描述        传统的情感分析研究大多立足于解决主观性文本的情感分类问题,面向复杂交互式文本的情感演化分析却力所不逮.本文以天涯论坛短文本中文在线评论为研究对象,首先提出一种高效的情感计算框架捕捉在线评论所蕴含的情感倾向;然后将情感计算和博弈论相结合提......
  • 自动驾驶-预瞄-Pure pursuit纯跟踪算法-MATLAB实现
    有空把引入、逻辑、原理介绍给写了,目前先给大家看看代码。将来写大概会分成这么几块:汽车运动学自行车模型跟踪算法主流模型及特点纯跟踪算法原理推导代码介绍代码原创,来之不易,请勿不注明转载。喜欢点个赞吧!网上许多代码都跑不起来hhclc;clear;%------------formroa......
  • c++实现Matlab矩阵Matrix类(实矩阵Matrix、复矩阵CMatrix)
    全栈工程师开发手册(作者:栾鹏)matlab2c动态链接库下载matlab库函数大全matlab2c基础教程matlab2c开发全解教程开发注意事项:1、目前matlab2c对矩阵的实现仅包含实数型、复数型数据。实数型矩阵使用Matrix定义,复数型矩阵使用CMatrix定义。2、实数矩阵元素int、float元素类型会自动......
  • 一维CNN,二维CNN以及三维CNN的训练模型matlab仿真
    1.算法描述卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习(deeplearning)的代表算法之一。卷积神经网络具有表征学习(representationlearning)能力,能够按其阶层结构对输入信息进行平移不变......
  • m基于多核学习支持向量机MKLSVM的数据预测分类算法matlab仿真
    1.算法描述        20世纪60年代Vapnik等人提出了统计学习理论。基于该理论,于90年代给出了一种新的学习方法——支持向量机。该方法显著优点为根据结构风险最小化归纳准则,有效地避免了过学习、维数灾难和局部极小等传统机器学习中存在的弊端,且在小样本情况下仍然具有......
  • m基于多核学习支持向量机MKLSVM的数据预测分类算法matlab仿真
    1.算法描述20世纪60年代Vapnik等人提出了统计学习理论。基于该理论,于90年代给出了一种新的学习方法——支持向量机。该方法显著优点为根据结构风险最小化归纳准则,有效地避免了过学习、维数灾难和局部极小等传统机器学习中存在的弊端,且在小样本情况下仍然具有良好的泛化能力,从......
  • 【无人机协同】多无人机协同任务规划模型研究附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • matlab学习笔记7 插值方法与求解微分方程
    插值法拉格朗日插值分段插值由于高次函数往往拟合的情况反而不好,所以用两点之间的直线代替其值进行插值三次样条插值更加光滑,节点处二阶可导代码汇总interp1(x0,y0,x,'cubic')%分段三次多项式插值,第三个参数不写则为普通分段插值interp1(x0,y0,x,'spline')%三次样条插值......
  • 基于mnist手写数字数据库的深度学习网络训练和数字识别matlab仿真
    1.算法描述        MNIST数据集(MixedNationalInstituteofStandardsandTechnologydatabase)是美国国家标准与技术研究院收集整理的大型手写数字数据库,该数据集包含60000 个于训练的样本和10000 个于测试的样本,图像是固定⼤小(28x28像素),每个像素的值为......