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

简介: 目标图像的HOG特征提取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仿真结果如下:

08801214cf645d97a501e8490427604b_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
29592b68bf1167ff182f4b206cc25f21_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

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 );
相关文章
|
3天前
|
传感器 算法 vr&ar
六自由度Stewart控制系统matlab仿真,带GUI界面
六自由度Stewart平台控制系统是一种高精度、高稳定性的运动模拟装置,广泛应用于飞行模拟、汽车驾驶模拟、虚拟现实等领域。该系统通过六个独立的线性致动器连接固定基座与移动平台,实现对负载在三维空间内的六个自由度(三维平移X、Y、Z和三维旋转-roll、pitch、yaw)的精确控制。系统使用MATLAB2022a进行仿真和控制算法开发,核心程序包括滑块回调函数和创建函数,用于实时调整平台的位置和姿态。
|
3天前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
基于ACO蚁群优化的VRPSD问题求解MATLAB仿真,输出ACO优化的收敛曲线、规划路径结果及每条路径的满载率。在MATLAB2022a版本中运行,展示了优化过程和最终路径规划结果。核心程序通过迭代搜索最优路径,更新信息素矩阵,确保找到满足客户需求且总行程成本最小的车辆调度方案。
|
2天前
|
机器学习/深度学习 存储 算法
基于Actor-Critic(A2C)强化学习的四旋翼无人机飞行控制系统matlab仿真
基于Actor-Critic强化学习的四旋翼无人机飞行控制系统,通过构建策略网络和价值网络学习最优控制策略。MATLAB 2022a仿真结果显示,该方法在复杂环境中表现出色。核心代码包括加载训练好的模型、设置仿真参数、运行仿真并绘制结果图表。仿真操作步骤可参考配套视频。
12 0
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
170 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
120 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
86 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
6月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)