人脸分割 matlab程序

该博客介绍了一个基于Matlab的人脸分割程序,利用YCbCr色彩空间和椭圆模型来识别并分割出人脸区域。程序通过计算YCbCr通道的权重和阈值,将图像像素映射到椭圆区域内,实现人脸检测。最终结果展示了一个原始图像及其经过人脸分割后的效果。

人脸脸部的皮肤具有一定的规律(都落在某个YCbCr表示的一个椭圆区域内),符合此规律的辨识为人脸


程序:(自己写, 但结果颜色很奇怪)

function [] = detection()
clear;
close all;
l = imread('2-2.jpg');
figure(1);
imshow(l);
l=double(l);
k=rgb2ycbcr(l);
imshow(k);
f=zeros(267,400);


for i= 1:267
    for j=1:400
%Y=0.257*l(i,j,1)+0.504*l(i,j,2)+0.098*l(i,j,3);
%Cb=0.148*l(i,j,1)-0.291*l(i,j,2)+0.439*l(i,j,3);
%Cr=0.439*l(i,j,1)-0.368*l(i,j,2)-0.071*l(i,j,3);
Y=k(i,j,1);
Cb=k(i,j,2);
Cr=k(i,j,3);
%Wci(Y)
if(Y<125)
Wcb =23+(Y-16)*(46.97-23)/(125-16);
Wcr =20+(Y-16)*(38.76-20)/(125-16); 
aCb =108+(125-Y)*(118-108)/(125-16);%aCi(Y)(Ci(Y)平均数)
aCr =154-(125-Y)*(154-144)/(125-16);
end
if(Y>188)
Wcb =14+(235-Y)*(46.97-14)/(235-188);
Wcr =10+(235-Y)*(38.76-10)/(235-188);
aCb =108+(Y-188)*(118-108)/(235-188);
aCr =154-(Y-188)*(154-132)/(235-188);
end
%Cia(Y)代表Ci'(Y)
if (125&l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值