function featureVec= hog(img)
img=double(img);
step=8; %8*8个像素作为一个cell
[m1 n1]=size(img);
%改变图像尺寸为step的最近整数倍
img=imresize(img,[floor(m1/step)*step,floor(n1/step)*step],'nearest');
[m n]=size(img);
% 2、%伽马校正
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; %边缘斜率,有些为inf,-inf,nan,其中nan需要再处理一下
the=atan(Iphase)*180/3.14159; %求梯度角度
for i=1:m
for j=1:n
if(Ix(i,j)>=0&&Iy(i,j)>=0) %第一象限
the(i,j)=the(i,j);
elseif(Ix(i,j)<=0&&Iy(i,j)>=0) %第二象限
the(i,j)=the(i,j)+180;
elseif(Ix(i,j)<=0&&Iy(i,j)<=0) %第三象限
the(i,j)=the(i,j)+180;
elseif(Ix(i,j)>=0&&Iy(i,j)<=0) %第四象限
the(i,j)=the(i,j)+360;
end
if isnan(the(i,j))==1 %0/0会得到nan,如果像素是nan,重设为0
the(i,j)=0;
end
end
end
the=the+0.000001; %防止角度为
% 4、划分cell,求cell的直方图( 1 cell = 8*8 pixel )
%下面是求cell
step=8; %step*step个像素作为一个cell
orient=9; %方向直方图的方向个数
jiao=360/orient; %每个方向包含的角度数
Cell=cell(1,1); %所有的角度直方图,cell是可以动态增加的,所以先设了一个
ii=1;
jj=1;
for i=1:step:m
ii=1;
for j=1:step:n
Hist1(1:orient)=0;
for p=1:step
for q=1:step
%梯度方向直方图
Hist1(ceil(the(i+p-1,j+q-1)/jiao))=Hist1(ceil(the(i+p-1,j+q-1)/jiao))+Ied(i+p-1,j+q-1);
end
end
Cell{ii,jj}=Hist1; %放入Cell中
ii=ii+1;
end
jj=jj+1;
end
% 5、划分block,求block的特征值,使用重叠方式( 1 block = 2*2 cell )
[m n]=size(Cell);
feature=cell(1,(m-1)*(n-1));
for i=1:m-1
for j=1:n-1
block=[];
block=[Cell{i,j}(:)' Cell{i,j+1}(:)' Cell{i+1,j}(:)' Cell{i+1,j+1}(:)'];
block=block./sum(block); %归一化
feature{(i-1)*(n-1)+j}=block;
end
end
% 6、图像的HOG特征值
[m n]=size(feature);
l=2*2*orient;
featureVec=zeros(1,n*l);
for i=1:n
featureVec((i-1)*l+1:i*l)=feature{i}(:);
end
% [m n]=size(img);
% img=sqrt(img); %伽马校正
% %下面是求边缘
% 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; %边缘斜率,有些为inf,-inf,nan,其中nan需要再处理一下
%
%
% %下面是求cell
% step=16; %step*step个像素作为一个单元
% orient=9; %方向直方图的方向个数
% jiao=360/orient; %每个方向包含的角度数
% Cell=cell(1,1); %所有的角度直方图,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-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); %当前step*step像素块统计角度直方图,就是cell
% for p=1:step
% for q=1:step
% if isnan(tmpphase(p,q))==1 %0/0会得到nan,如果像素是nan,重设为0
% tmpphase(p,q)=0;
% end
% ang=atan(tmpphase(p,q)); %atan求的是[-90 90]度之间
% ang=mod(ang*180/pi,360); %全部变正,-90变270
% if tmpx(p,q)<0 %根据x方向确定真正的角度
% if ang<90 %如果是第一象限
% ang=ang+180; %移到第三象限
% end
% if ang>270 %如果是第四象限
% ang=ang-180; %移到第二象限
% end
% end
% ang=ang+0.0000001; %防止ang为0
% Hist(ceil(ang/jiao))=Hist(ceil(ang/jiao))+tmped(p,q); %ceil向上取整,使用边缘强度加权
% end
% end
% Hist=Hist/sum(Hist); %方向直方图归一化
% Cell{ii,jj}=Hist; %放入Cell中
% ii=ii+1; %针对Cell的y坐标循环变量
% end
% jj=jj+1; %针对Cell的x坐标循环变量
% end
%
% %下面是求feature,2*2个cell合成一个block,没有显式的求block
% [m n]=size(Cell);
% feature=cell(1,(m-1)*(n-1));
% for i=1:m-1
% for j=1:n-1
% f=[];
% f=[f Cell{i,j}(:)' Cell{i,j+1}(:)' Cell{i+1,j}(:)' Cell{i+1,j+1}(:)'];
% feature{(i-1)*(n-1)+j}=f;
% end
% end
% %
% % 到此结束,feature即为所求
% % 下面是为了显示而写的
% l=length(feature);
% f=[];
% for i=1:l
% f=[f;feature{i}(:)'];
% end
% % figure
% % mesh(f)
没有合适的资源?快使用搜索试试~ 我知道了~
【人脸识别】 HOG特征提取人脸识别【含Matlab源码 641期】.zip
共99个文件
mat:81个
m:15个
jpg:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 159 浏览量
2024-06-20
17:03:49
上传
评论
收藏 17.03MB ZIP 举报
温馨提示
Matlab领域上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 图像识别:表盘识别、车道线识别、车牌识别、答题卡识别、电器识别、跌倒检测、动物识别、发票识别、服装识别、汉字识别、红绿灯识别、火灾检测、疾病分类、交通标志牌识别、口罩识别、裂缝识别、目标跟踪、疲劳检测、身份证识别、人民币识别、数字字母识别、手势识别、树叶识别、水果分级、条形码识别、瑕疵检测、芯片识别、指纹识别
资源推荐
资源详情
资源评论
收起资源包目录
【人脸识别】 HOG特征提取人脸识别【含Matlab源码 641期】.zip (99个子文件)
【人脸识别】基于matlab HOG特征提取人脸识别【含Matlab源码 641期】
label3_3.mat 479B
label2_3.mat 452B
label5_5.mat 541B
运行结果2.JPG 15KB
label13_5.mat 535B
face_recognition_3.m 2KB
split_train_test.m 900B
运行结果1.JPG 13KB
label1.m 3KB
label12_6.mat 422B
label_random.mat 386B
label9_1.mat 586B
label8_2.mat 534B
myimread.m 785B
label2.m 970B
label2_1.mat 496B
label11_6.mat 422B
label9_2.mat 559B
label10_3.mat 532B
label6_6.mat 510B
label4_3.mat 507B
label7_4.mat 528B
label2_6.mat 515B
label11_3.mat 535B
label2_2.mat 461B
label11_1.mat 719B
label1_3.mat 521B
label12_1.mat 726B
label6_1.mat 510B
label13_4.mat 460B
AR_HOG.mat 15.17MB
label4_2.mat 516B
label2_4.mat 526B
label_random.m 213B
main.m 957B
label5_3.mat 441B
label7_2.mat 510B
label6_2.mat 476B
label6_5.mat 551B
main_random.m 636B
label8_1.mat 561B
label13_6.mat 423B
label11_5.mat 537B
label2_5.mat 525B
label10_4.mat 422B
label7_5.mat 563B
label13_1.mat 698B
label11_4.mat 463B
label12_2.mat 676B
label10_1.mat 629B
myKNN.m 3KB
label12_5.mat 540B
label5_4.mat 534B
label4_5.mat 559B
test1.m 917B
label3_1.mat 522B
label8_6.mat 500B
label9_5.mat 567B
label1_1.mat 480B
split2train_test.m 450B
hog.m 5KB
label13_2.mat 651B
label10_5.mat 567B
randindex.m 246B
label12_4.mat 446B
label7_1.mat 543B
train1.m 855B
label9_4.mat 421B
label6_3.mat 447B
train1_HOG.mat 604KB
testlabel.mat 416B
label5_2.mat 496B
label12_3.mat 526B
label8_3.mat 533B
label7_3.mat 441B
label4_4.mat 530B
label10_2.mat 599B
test.m 868B
label3_4.mat 528B
label5_1.mat 530B
label8_5.mat 561B
label3_2.mat 494B
test1_HOG.mat 1.17MB
label4_6.mat 522B
label7_6.mat 492B
label.random 213B
label9_3.mat 532B
label10_6.mat 490B
label13_3.mat 529B
label3_6.mat 513B
trainlabel.mat 301B
label5_6.mat 511B
label1_2.mat 528B
label4_1.mat 552B
code
label3_5.mat 537B
label8_4.mat 422B
label9_6.mat 497B
label11_2.mat 666B
label6_4.mat 531B
共 99 条
- 1
资源评论
Matlab领域
- 粉丝: 3w+
- 资源: 3023
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功