基于matlab的简单人脸识别实例

来源:互联网 发布:最新nba季后赛数据统计 编辑:程序博客网 时间:2024/06/09 22:48

基于matlab的简单人脸识别实例

lyqmath

简介

人脸识别特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。人脸识别是一项热门的计算机技术研究领域,在生活中许多领域都有着重要应用。

内容

这里通过对人脸图像打上网格,对区域块图像做二值分析,通过像素比例来做处理。进而得到人脸区域。

代码

% By lyqmath

% DLUT School of Mathematical Sciences

% BLOGhttp://blog.csdn.net/lyqmath

 

clc; clear all; close all;

% 载入图像

Img = imread('face.jpg');

if ndims(Img) == 3

    I=rgb2gray(Img);

else

    I = Img;

end

BW = im2bw(I, graythresh(I)); % 二值化

figure;

subplot(2, 2, 1); imshow(Img);

title('原图像', 'FontWeight', 'Bold');

subplot(2, 2, 2); imshow(Img);

title('网格标记图像', 'FontWeight', 'Bold');

hold on;

[xt, yt] = meshgrid(round(linspace(1, size(I, 1), 10)), ...

    round(linspace(1, size(I, 2), 10)));

mesh(yt, xt, zeros(size(xt)), 'FaceColor', ...

    'None', 'LineWidth', 3, ...

    'EdgeColor', 'r');

subplot(2, 2, 3); imshow(BW);

title('二值图像', 'FontWeight', 'Bold');

[n1, n2] = size(BW);

r = floor(n1/10); % 分成10块,行

c = floor(n2/10); % 分成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)

            % 如果是在四周区域

            loc = find(BW(x1:x2, y1:y2)==0);

            [p, q] = size(loc);

            pr = p/s*100; % 黑色像素所占的比例数

            if pr <= 100

                BW(x1:x2, y1:y2) = 0;

            end

        end

        y1 = y1+c; % 列跳跃

        y2 = y2+c; % 列跳跃

    end   

    x1 = x1+r; % 行跳跃

    x2 = x2+r; % 行跳跃

end

 

[L, num] = bwlabel(BW, 8); % 区域标记

stats = regionprops(L, 'BoundingBox'); % 得到包围矩形框

Bd = cat(1, stats.BoundingBox);

 

[s1, s2] = size(Bd);

mx = 0;

for k = 1:s1

    p = Bd(k, 3)*Bd(k, 4); % *

    if p>mx && (Bd(k, 3)/Bd(k, 4))<1.8

        % 如果满足面积块大,而且宽/<1.8

        mx = p;

        j = k;

    end

end

subplot(2, 2, 4);imshow(I); hold on;

rectangle('Position', Bd(j, :), ...

    'EdgeColor', 'r', 'LineWidth', 3);

title('标记图像', 'FontWeight', 'Bold');

 

结果

结论

通过对人脸图像做二值化,统计像素比例信息。得到人脸识别结果。当然,这种方式处理并不稳定,但基于图像网格分析做处理,进而得到分析结果也是一种经典的处理方式。

 

 

欢迎访问我的博客:http://blog.csdn.net/lyqmath

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 眼睛里面进了汽油怎么办 脱硫塔里的二氧化硫高怎么办 恐怖黎明铁匠选错怎么办 堡垒之夜草变色怎么办 火柴没有擦的了怎么办 乙醚倒进下水道了怎么办 乙醚和水不分层怎么办 乙醚闻多了头晕怎么办 爱乐维吃了便秘怎么办 刮完滑石粉墙面很软怎么办 被硫酸泼到皮肤怎么办 头磕了一下头晕怎么办 家里有事与工作不能请怎么办 撞了头头晕想吐怎么办 猫不小心摔一下怎么办 一氧化二氮中毒怎么办 电脑开机变慢了怎么办 怎么办抚顺韦德健身卡 预售健身卡合法吗怎么办 被浓硫酸泼到怎么办 婴儿误喝了生水怎么办 宝宝喝了生水拉肚子怎么办 因妈妈喝生水宝宝拉肚子怎么办 喝了几口生水怎么办 不小心吃到蟑螂怎么办 吃了有蛆的樱桃怎么办 不小心误食了蛆怎么办 吃了有蟑螂的汤怎么办 调节天平时指针向右怎么办 香薰蜡烛融化了怎么办 香薰蜡烛挂壁怎么办y 粗蜡烛只烧中间怎么办 紫薯馒头变绿怎么办 小孩手开水烫了怎么办 被油烫伤了怎么办才不留疤 烫伤水泡蹭破了怎么办 烧伤的水泡破了怎么办 烧伤后水泡破了怎么办 烫伤泡破了红肿怎么办 烧伤第二天水泡破了怎么办? 烧伤后换药特别疼怎么办