资源简介
在人脸检测后进行人脸图像的归一化,为人脸识别做准备
代码片段和文件信息
clear all
close all
clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 读入待检测图像
x=imread(‘E:\工作\实验\人脸识别\人脸图片\1.jpg‘); %读入图像
figure
imshow(x)
%%图像中的亮度不一样,创建一个半径为16像素的圆盘形结构,用该结构对图像进行数学形态学的开操作后,估计背景亮度
%stru=strel(‘disk‘26);
% back=imopen(xstru);
%%从原图像中减去背景亮度,得到一个背景比较一致的图像。(针对简单背景)
%I1=imsubtract(xback);
%figureimshow(I1);
%%%%%%%%
if size(x3)>1 %判断是否为彩色图像?
y=rgb2gray(x);%转化为灰度图
end
%%%
b=histeq(y);%直方图均衡化
%figuresubplot(121)imshow(y);%当前窗口中分区显示几幅图片。
%subplot(122)imshow(b);
figureimshow(b);
b=double(b); %转化为小数型%%图像中的亮度不一样,创建一个半径为16像素的圆盘形结构,用该结构对图像进行数学形态学的开操作后,估计背景亮度
[outputcountmsvec]=facefind(b);%找出人脸
figure
imshow(x)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 画出人脸框图
col=[1 0 0];%人脸框图为红色
col=[0 1 0];%人脸框图为绿色
t=2; %人脸框图线的宽度
N=size(output2);%N为output矩阵的列数
if (N>0)
for i=1:N
x1=output(1i);
x2=output(2i);
y1=output(3i);
y2=output(4i);
vec=[x1 x2 y1 y2]; %方框四个角的坐标
ind=find(isinf(vec)); %无限值情况
a=200; %should be realmax
vec(ind)=sign(vec(ind))*a;
h1=line([vec(1) vec(2)][vec(3) vec(3)]);
h2=line([vec(2) vec(2)][vec(3) vec(4)]);
h3=line([vec(1) vec(2)][vec(4) vec(4)]);
h4=line([vec(1) vec(1)][vec(3) vec(4)]);
h=[h1 h2 h3 h4];
set(h‘Color‘col);
set(h‘LineWidth‘t);
a=abs(vec(1)-vec(2));
b=abs(vec(3)-vec(4));
c1=vec(1)-a/9;c2=5*a/4;
d1=vec(3)-b/3;d2=17*b/12;
xRect=imcrop(x[c1 d1 c2 d2]);
figureimshow(xRect);
xguiyi=imresize(xRect[11292]);
figureimshow(xguiyi);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2019 2012-02-21 20:03 新建文件夹\face_detectwudingkuang.m
文件 2756608 2006-09-27 19:54 新建文件夹\facefind.dll
目录 0 2012-02-22 11:09 新建文件夹
文件 2756608 2006-09-27 19:54 1\facefind.dll
文件 2138 2012-02-23 20:35 1\11.rar
目录 0 2012-02-23 20:36 1
----------- --------- ---------- ----- ----
5517373 6
- 上一篇:eviews与岭回归
- 下一篇:基于DTIstudio的DTI数据处理流程整理
评论
共有 条评论