MATLAB人脸识别区域定位实战源码解析

MATLAB人脸识别区域定位实战源码解析
一半步骤如下:
1、读取图像文件;
2、对图像进行预处理
(包括灰度化,二值化、降噪,减小背景区域等)
3、识别脸部区域;
4、可视化输出;
主要展示针对于人物头像的脸部区域定位矩形操作,来确定。
源码如下:

ii=imread('sffffffrt3.jpg');
subplot(131);imshow(ii);title('原始图像');
ii2=rgb2gray(ii);
subplot(132);imshow(ii2);title('灰度图像');
I2=im2bw(ii);
subplot(133);imshow(I2);title('二值图像');

[n1 n2]=size(I2);%图像尺寸/10
r=floor(n1/10);
c=floor(n2/10);
x1=1;x2=r;
s=r*c;
%减小背景区域,将图像边缘区域设置黑色
for i=1:10
    y1=1;y2=c;
    for j=1:10
        if(y2<=c | y2>=9*c)|(x1==1 | x2==r*10)
            I2(x1:x2,y1:y2)=0;
        end
        y1=y1+c;
        y2=y2+c;
    end
    x1=x1+r;
    x2=x2+r;
end
figure;%显示去除区域背景后的图像,即背景区域处理后的图像
subplot(121);imshow(I2); title('背景区域处理');hold on;

L=bwlabel(I2,4);%标注各个连通区域
BB=regionprops(L,'BoundingBox');%计算包含区域的最小矩形坐标
BB1=struct2cell(BB);
BB2=cell2mat(BB1);

[s1 s2]=size(BB2);
mx=0;

for k=3:4:s2-1
    p=BB2(1,k)*BB2(1,k+1);
    if p>mx & (BB2(1,k+1)/BB2(1,k))<2
        mx=p;
        j=k;
    end
end
subplot(122);imshow(I2);title('人脸区域定位');
hold on;
rectangle('Position',[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],'EdgeColor','r');

运行程序后,显示的效果如图:
figure(1):
在这里插入图片描述

figure(2);红色矩形框代表的是人脸区域。
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海宝7号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值