HOG算法图像特征提取
function H=HOG(Im)
nwin_x=3;%set here the number of HOG windows per bound box
nwin_y=3;
B=9;%set here the number of histogram bins
[L,C]=size(Im); % L num of lines ; C num of columns
H=zeros(nwin_x*nwin_y*B,1); % column vector with zeros
m=sqrt(L/2);
if C==1 % if num of columns==1
Im=im_recover(Im,m,2*m);%verify the size of image, e.g. 25x50
L=2*m;
C=m;
end
Im=double(Im);
step_x=floor(C/(nwin_x+1));
step_y=floor(L/(nwin_y+1));
cont=0;
hx = [-1,0,1];
hy = -hx';
grad_xr = imfilter(double(Im),hx);
grad_yu = imfilter(double(Im),hy);
angles=atan2(grad_yu,grad_xr);
magnit=((grad_yu.^2)+(grad_xr.^2)).^.5;
for n=0:nwin_y-1
for m=0:nwin_x-1
cont=cont+1;
angles2=angles(n*step_y+1:(n+2)*step_y,m*step_x+1:(m+2)*step_x);
magnit2=magnit(n*step_y+1:(n+2)*step_y,m*step_x+1:(m+2)*step_x);
v_angles=angles2(:);
v_magnit=magnit2(:);
K=max(size(v_angles));
%assembling the histogram with 9 bins (range of 20 degrees per bin)
bin=0;
H2=zeros(B,1);
for ang_lim=-pi+2*pi/B:2*pi/B:pi
bin=bin+1;
for k=1:K
if v_angles(k)<ang_lim
v_angles(k)=100;
H2(bin)=H2(bin)+v_magnit(k);
end
end
end
H2=H2/(norm(H2)+0.01);
H((cont-1)*B+1:cont*B,1)=H2;
end
end
相关文章
- Java实现 蓝桥杯 算法训练 Bit Compressor(暴力)
- Java实现 蓝桥杯 算法提高 计算行列式
- Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
- (算法)等概率选出m个整数
- OpenCV每日函数 计算摄影模块(1) 图像修复算法 inpaint函数
- ML之Hog_HammingDistance:基于Hog特征提取“RGB”图像的768个值的单向vector利用汉明距离算法实现计算图像相似度案例
- Interview:算法岗位面试—11.07早上上海某机器人公司(上市)面试之项目考察、比赛考察、图像算法的考察等
- ML之GMM:基于GMM算法的图像分割/语义分割案例
- 多目标遗传优化算法NSGA-Ⅱ算法(Matlab)
- python教你最简单的机器学习算法:KNN,有手就行
- m基于HOG特征提取和GRNN网络的人体姿态识别算法matlab仿真,样本为TOF数据库的RGB-D深度图像
- 通过扩频和DCT变换算法将图像水印嵌入到音频信号中并提取水印matlab仿真
- 对滤波反投影重建算法的研究以phantom图进行matlab仿真,构建滤波器,重建图像
- m基于AlexNet神经网络和GEI步态能量图的步态识别算法MATLAB仿真
- 【Python算法】算法设计与分析第一次作业
- 算法复习--直接插入排序
- BFS (1)算法模板 看是否需要分层 (2)拓扑排序——检测编译时的循环依赖 制定有依赖关系的任务的执行顺序
- 高密度椒盐噪声的多方向加权均值滤波算法-附代码
- 【图像配准】多图配准/不同特征提取算法/匹配器比较测试
- 【图像配准】SIFT算法原理及二图配准拼接
- 【手撕算法】时间复杂度和空间复杂度概述