资源简介
生物识别是一种根据人体自身的生理特征(如指纹、脸像、虹膜等)和行为特征(如笔迹、声音、步态等)来识别身份的技术。近年来,随着模式识别、图像处理和信息传感等技术的不断发展,生物识别显示出更为广阔的应用前景。众所周知,其他的生物测定方法如指纹、声音和虹膜等,由于要求被测定者的主动配合参与,才能达到识别的目的,而人脸识别却不受这种限制,因此人脸识别正在成为当前人们关注和投入较大研究力量的重点。
学习目标:
(1)学习和掌握MATLAB人脸检测算法;
(2)学习和掌握MATLAB编程实现人脸图像分割;
(3)学习和掌握不同颜色空间下的人脸图像分割等
代码片段和文件信息
function [hsv] = rgb2hsv(rgb)
%RGB2HSV Convert red-green-blue colors to hue-saturation-value.
% 色度(H)和饱和度(S)、亮度(V)
switch nargin
case 1 % 输入一个量,即一副RGB图像
validateattributes(r {‘uint8‘ ‘uint16‘ ‘double‘ ‘single‘} {‘real‘} mfilename ‘RGB‘ 1);
if isa(r ‘uint8‘) % 图像数据类型uint8
r = double(r) / 255;
elseif isa(r ‘uint16‘) % 是否为uint16
r = double(r) / 65535;
end
case 3 % 输入为RGB三通道数据
validateattributes(r {‘uint8‘ ‘uint16‘ ‘double‘ ‘single‘} {‘real‘} mfilename ‘R‘ 1);
validateattributes(g {‘uint8‘ ‘uint16‘ ‘double‘ ‘single‘} {‘real‘} mfilename ‘G‘ 2);
validateattributes(b {‘uint8‘ ‘uint16‘ ‘double‘ ‘single‘} {‘real‘} mfilename ‘B‘ 3);
if isa(r ‘uint8‘)
r = double(r) / 255;
elseif isa(r ‘uint16‘)
r = double(r) / 65535;
end
if isa(g ‘uint8‘)
g = double(g) / 255;
elseif isa(g ‘uint16‘)
g = double(g) / 65535;
end
if isa(b ‘uint8‘)
b = double(b) / 255;
elseif isa(b ‘uint16‘)
b = double(b) / 65535;
end
otherwise
error(message(‘输入变量错误‘));
end
threeD = (ndims(r)==3); % 判断r是否是三通道的数据
if threeD %如果是的,分成RGB三通道数据
g = r(::2); b = r(::3); r = r(::1);
siz = size(r);
r = r(:); g = g(:); b = b(:); % 化成一列
elseif nargin==1
g = r(:2); b = r(:3); r = r(:1);
siz = size(r);
else
if ~isequal(size(r)size(g)size(b))
error(message(‘RGB三通道数据维数不相同‘));
end
siz = size(r);
r = r(:); g = g(:); b = b(:);
end
% 色度(H)和饱和度(S)、亮度(V)
v = max(max(rg)b); % 最大值
h = zeros(size(v) ‘like‘ r); % 色度
s = (v - min(min(rg)b)); % 饱和度
% 公式
z = ~s;
s(~s) = 1;
k = find(r == v); % r通道
h(k) = (g(k) - b(k))./s(k);
k = find(g == v); % g通道
h(k) = 2 + (b(k) - r(k))./s(k);
k = find(b == v); % b通道
h(k) = 4 + (r(k) - g(k))./s(k);
h = h/6;
k = find(h < 0);
h(k) = h(k) + 1;
h(z) = 0;
tmp = s./v;
tmp(z) = 0;
k = find(v);
s(k) = tmp(k);
s(~v) = 0;
if nargout<=1 % 输出小于等于1个变量
if (threeD || nargin==3)
h = reshape(hsiz); % 变为二维矩阵
s = reshape(ssiz);
v = reshape(vsiz);
h=cat(3hsv);
else
h=[h s v];
end
else
h = reshape(hsiz);
s = reshape(ssiz);
v = reshape(vsiz);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 45576 2018-06-29 12:59 第16章\1.jpg
文件 2488 2018-06-29 12:59 第16章\rgb2hsv.m
文件 1726 2018-06-29 12:59 第16章\rgb2ycrcb.m
文件 223 2018-06-29 12:59 第16章\waitopen.m
文件 65116 2018-06-29 12:59 第16章\xbb.jpg
文件 40740 2018-06-29 12:59 第16章\xbb2.jpg
文件 300 2018-06-29 12:59 第16章\ysw16_1.m
文件 296 2018-06-29 12:59 第16章\ysw16_2.m
文件 962 2018-06-29 12:59 第16章\ysw16_3.m
文件 825 2018-06-29 12:59 第16章\ysw16_4.m
文件 1540 2018-06-29 12:59 第16章\ysw16_5.m
文件 995 2018-06-29 12:59 第16章\ysw16_6.m
文件 1690 2018-06-29 12:59 第16章\ysw16_7.m
目录 0 2018-08-20 17:45 第16章
----------- --------- ---------- ----- ----
162477 14
- 上一篇:指纹图像特征提取与matlab实现
- 下一篇:匈牙利算法的函数优化matlab
相关资源
- 匈牙利算法的函数优化matlab
- 指纹图像特征提取与matlab实现
- 线性系统基于观测器的状态反馈控制
- 万有引力搜索算法的函数优化-matlab
- bp模型优化预测与matlab仿真,pid参数优
- three phase voltage rectifier 三相电压型S
- Femtocell-Interference-management-using-FFR
- Outage Probability noma
- VOC2012devkit pascal voc2012工具
- STATCOM_PI 采用载波移相和PI控制器的(
- DCcontantvoltage 直流微电网恒压控制
- Outage
- powerquality MATLAB
- hvdc_vsc_4_terminals 技术是当今世界电力
- Staggered-grid-finite-difference 很简单的交
- 布谷鸟的搜索算法
- 计算Mittag-Leffler函数的MATLAB程序
评论
共有 条评论