资源简介
基于界面操作的人脸心率检测的代码,摄像头实时采集人视频,并计算心率
代码片段和文件信息
close all;
clc;
clear all;
FaceImg=imread(‘wangming150.jpg‘);
I=FaceImg;
%%%%%%%%%%%%%%%%%%%%%%%%%
I=rgb2ycbcr(I);
Cb=I(::2);%大小为mxn的二维矩阵
Cr=I(::3);%大小为mxn的二维矩阵
CC=zeros(size(Cr));
CC((130 % se=strel(‘square‘5); %生成圆形结构元素
% BW=imerode(CCse); %用生成的结构元素对图像进行腐蚀
se=strel(‘disk‘8);
BW=imclose(CCse);
BW=imfill(BW‘holes‘);
[L num] = bwlabel(BW 4); % 区域标记
S = regionprops(L‘Area‘‘BoundingBox‘);
Sarea = cat(1 S.Area);
Bd = cat(1 S.BoundingBox);
[maxarea n]=max(Sarea);
bw=(L==n);
%%%%%%%%%%%%%%%%%%%%
[bdn bdm]=size(Bd);
zx=floor(Bd(n1));
zy=floor(Bd(n2));
zw=floor(Bd(n3));
zh=floor(min(Bd(n3)(Bd(n4)*1.2)));
xw=0;
xh=0;
eh=0;
%%%求矩形左上角起点的y和高度。
while xw<(zw/2)
xw=length(find(bw(zy:)));%二值图像行中有图像素数量
zy=zy+3;
zh=zh-3;
end
yb1=zy+5;
yb2=yb1+zh-5;
%%%%求矩形左上角的起点x坐标
while xh<(zh/2)
xh=length(find(bw(:zx)));%二值图像一个列上的像素点数量
zx=zx+3;
zw=zw-3;
end
xb1=zx+10;
xb2=zx+zw;
%求图像右侧结束位置的的x轴坐标
while eh<(zh/2)
eh=length(find(bw(:(xb2))));
xb2=xb2-3;
end
xb2=xb2-10;
zbiao=[xb1yb1(xb2-xb1)(yb2-yb1)];
fprintf(‘矩形坐标=%d%d%d%d\n‘xb1xb2yb1yb2);
imshow(bw);
rectangle(‘Position‘zbiao ‘EdgeColor‘ ‘r‘);
ImR=FaceImg(yb1:yb2xb1:xb21);
ImG=FaceImg(yb1:yb2xb1:xb22);
ImB=FaceImg(yb1:yb2xb1:xb23);
Imrgb=FaceImg(yb1:yb2xb1:xb2:);
RIMG=mean(ImR(:));
GIMG=mean(ImG(:));
BIMG=mean(ImB(:));
rgbimg(:imnum)=[RIMG;GIMG;BIMG];
disp([‘图片处理时间:‘num2str(toc)]);
fprintf(‘图像%d的均值:(%d%d%d);\n‘imnumRIMGGIMGBIMG);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2101 2013-10-21 19:05 newfigure\facetest.m
文件 11573 2013-10-21 10:38 newfigure\heartbreat.fig
文件 15082 2013-10-21 10:38 newfigure\heartbreat.m
文件 70 2013-10-17 18:23 newfigure\StartFcn.m
文件 235 2013-10-17 18:21 newfigure\timerdamo.m
目录 0 2013-10-24 09:37 newfigure
----------- --------- ---------- ----- ----
29061 6
- 上一篇:SAO星表数据
- 下一篇:adp自适应动态规划介绍
评论
共有 条评论