matlab眼睛检测,MATLAB 人脸检测——眼睛检测 EyeMapC 与 EyeMapL 请懂的大虾来帮忙...

I=imread('c:\darwin\lip tracking\faceDetection\face.jpg');

%  I=imread(frame);

EyeMap = rgb2ycbcr(I);

temp1=0;

temp2=0;

%Q = rgb2gray(I);

%imshow(EyeMap)

[m n l]=size(EyeMap);

%Finding EyeMapC

y = double(EyeMap(:,:,1));

Cb = double(EyeMap(:,:,2));

Cr = double(EyeMap(:,:,3));

Z=Cr;

Q = Cb.^2;

R = (255-Cr).^2;

G = Cb./Cr;

CrCb = Cr./Cb;

%Eye Map for Crominance

EyeC=(Q+R+G)/3;

CRS = Cr.^2;

ssCRS = sum(sum(CRS));

ssCrCb=sum(sum(CrCb));

eta = 0.95 * ssCRS/ssCrCb;

x= CRS - eta * Cr./Cb;

MM = CRS.*x.*x;

SE=strel('disk',4) ;

UP=imdilate(y,SE);

Down=imerode(y,SE);

EyeY= UP./(Down+1);

EyeMap=EyeY.*EyeC;

figure;

subplot(1,4,1), imagesc(I);title ('Face');axis off;

subplot(1,4,2), imagesc(Q);title ('Cb^2');axis off;

subplot(1,4,3), imagesc(R);title ('(Cr-complement)^2');axis off;

subplot(1,4,4), imagesc(EyeC);title ('Eye-Map-C'); axis off;

colormap(gray);

figure;

subplot(1,4,1), imagesc(UP);title ('Dilation'); axis off;

subplot(1,4,2), imagesc(Down);title ('Erotion'); axis off;

subplot(1,4,3), imagesc(EyeY);title ('EyeY'); axis off;

subplot(1,4,4), imagesc(EyeMap);title ('EyeMap'); axis off;

%colormap(gray);

%figure

%imagesc(MM);title ('MouthMap');

colormap(gray);

代码如上,但是现在效果不好。输入的是彩色面部图片。希望能达到的效果如图所示,主要是眼睛部分如何处理到图片中EyeMapL那样。

1. Dilation操作(图中2)能达到如图效果的

2. Eye-Map L(图中4)中眼睛部分能得到对比度较高。

满足上面2个需求之一的都会给分的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值