【图像分割】基于matlab RGB HSV YCbCr Lab颜色空间人脸检测之图像分割【含Matlab源码 228期】

一、简介

现代信息社会对于身份鉴别的准确性、安全性与实用性提出了更高的要求,传统的身份识别方法已经不能满足这种要求,而人体丰富的生理和行为特征为此提供了一个可靠的解决方案,因而引起了国际学术界和企业界的广泛关注。生物识别是一种根据人体自身的生理特征(如指纹、脸像、虹膜等)和行为特征(如笔迹、声音、步态等)来识别身份的技术。近年来,随着模式识别、图像处理和信息传感等技术的不断发展,生物识别显示出更为广阔的应用前景。众所周知,其他的生物测定方法如指纹、声音和虹膜等,由于要求被测定者的主动配合参与,才能达到识别的目的,而人脸识别却不受这种限制,因此人脸识别正在成为当前人们关注和投入较大研究力量的重点。
Lab色彩空间被设计用来接近人类视觉,它致力于感知均匀性。
在Lab空间中,L表示亮度,a和b表示颜色对立的维度。L值为O时色彩为黑色,L值接近100时为白色;a值表示色彩在红色和绿色之间的位置;b值表示色彩在蓝色和黄色之间的位置。在CIELAB模型中,a值大于0时表示红色,a值小于O时表示绿色,b值大于O时表示黄色。
Lab颜色空间是一种与设备无关的颜色系统,是基于1931年CIE颁布的色彩度量国际标准创建的,是由CIE XYZ通过数学转换得到的均匀色度空间。CIE XYZ空间采用了理想的原色X、Y、Z代替R、G、B,而理想原色的选择是基于RGB颜色空间采用数学方法建立的,其中,X、Y、Z分别描述红原色、绿原色和蓝原色。这三个分量是虚拟的假色彩,并非真色彩。

二、源代码

clc,clear,close all
warning off
feature jit off       % 加速代码执行,提高运行时间
rgb=imread('xbb.jpg');  % 加载图像
% imshow(rgb);
r = rgb(:, :, 1);  % R通道
g = rgb(:, :, 2);  % G通道
b = rgb(:, :, 3);  % B通道
[m,n]=size(r);
cform = makecform('srgb2lab'); % color transformation structure
J = applycform(rgb,cform);     % color space transformation
M=graythresh(J(:,:,3));        % 阈值
BW2=im2bw(J(:,:,3),M);         %二值化
BW2= bwareaopen(BW2, 300);     %剔除小块
% imshow(BW2)
cc=bwconncomp(BW2);            % 连通性检查
s  = regionprops(BW2, {
    
    'centroid','area'});  %标记块重心
[~, id] = max([s.Area]);     % 找出最大块的标号
BW2(labelmatrix(cc)~=id)=0;  % 非最大块置为背景
r1=immultiply(r,~BW2);  % 交运算
g1=immultiply(g,~BW2);  % 交运算
b1=immultiply(b,~BW2);  % 交运算
xbb=cat(3,r1,g1,b1);    % 合成3-D
figure;imshow(xbb);     % 显示
%%
for i=1:m
    for j=1:n
      if (r1(i,j)>=145&&r1(i,j)<=255)&&(g1(i,j)>=50&&g1(i,j)<=255)&&(b1(i,j)>=20&&b1(i,j)<=220)%改皮肤色
            r1(i,j)=150;g1(i,j)=250;b1(i,j)=250;
      end
      if (r1(i,j)>=240&&r1(i,j)<=255)&&(g1(i,j)>=240&&g1(i,j)<=255)&&(b1(i,j)>=220&&b1(i,j)<=255)%改背景白色
            r1(i,j)=255;g1(i,j)=0;b1(i,j)=255;
      end
      if (r1(i,j)>=0&&r1(i,j)<=2)&&(g1(i,j)>=0&&g1(i,j)<=2)&&(b1(i,j)>=0&&b1(i,j)<=2)%改背景黑色
            r1(i,j)=200;g1(i,j)=255;b1(i,j)=0;
      end
      if (r1(i,j)>=0&&r1(i,j)<=170)&&(g1(i,j)>=0&&g1(i,j)<=172)&&(b1(i,j)>=0&&b1(i,j)<=180)%改头发黑色
            r1(i,j)=120;g1(i,j)=155;b1(i,j)=255;
      end
    end
end
clc,clear,close all
warning off
im=imread('1.jpg');    % 读图
im_gray=rgb2gray(im);  % 转为灰度图像
R=im(:,:,1);G=im(:,:,2);B=im(:,:,3);
hsv_im=rgb2hsv(R,G,B); % RGB到HSV
subplot(121),subimage(im) % 显示图像
axis off
title('RGB')
subplot(122),subimage(hsv_im)

function [h,s,v] = rgb2hsv(r,g,b)
%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);
     function ycrcb_im =  rgb2ycrcb(r,g,b)
% RGB颜色空间向YCrCb彩色空间转化
switch nargin
  case 1,  % 输入一个量,即一副RGB图像
     validateattributes(r, {
    
    'uint8', 'uint16', 'double', 'single'}, {
    
    'real'}, mfilename, 'RGB', 1);

四、备注

完整代码或者代写添加QQ 2449341593
往期回顾>>>>>>
【图像识别】基于matlab路面裂缝识别含GUI【含Matlab源码 009期】
【图像识别】基于matlab身份证号码识别【含Matlab源码 014期】
【图像压缩】基于matlab图像处理教程系列之图像压缩【含Matlab源码 024期】
【图像分割】基于matlab图像处理教程系列之图像分割(一)【含Matlab源码 025期】
【图像分割】基于matlab图像处理教程系列之图像分割(二)【含Matlab源码 026期】
【模式识别】基于matlab指纹识别【含Matlab源码 029期】
【模式识别】基于matlab银行卡号识别【含Matlab源码 030期】
【图像聚类】基于matlab FCM和改进的FCM脑部CT图像聚类【含Matlab源码 074期】
【图像评价】基于matlab CCF算法的图像质量评价【含Matlab源码 075期】
【图像增强】基于matlab局部对比度增强的CLAHE算法之直方图增强【含Matlab源码 076期】
【图像融合】基于matlab Frequency Partition之图像融合【含Matlab源码 077期】
【图像评价】基于matlab SVM之图像无参考质量评价【含Matlab源码 078期】
【图像处理】基于matlab DWT+DCT+PBFO改进图像水印隐藏提取含GUI【含Matlab源码 081期】
【图像变换】基于matalb DIBR-3D图像变换【含Matalb源码 082期】
【图像融合】基于matlab CBF算法的图像融合【含Matlab源码 083期】
【图像分割】基于matlab模糊聚类算法FCM的图像分割【含Matlab源码 084期】
【图像分割】基于形态学重建和过滤改进FCM算法(FRFCM)的的图像分割【Matlab 085期】
【图像去噪】基于matlab自适应形态学的图像去噪【含Matlab源码 086期】
【图像增强】基于matlab DEHAZENET和HWD的水下去散射图像增强【含Matlab 087期】
【图像增强】基于matlab PSO寻优ACE的图像增强【含Matlab源码 088期】
【图像增强】基于matlab区域相似变换函数和蜻蜓算法之灰度图像增强【含Matlab源码 089期】
【图像重建】基于matlab图像重建之ASTRA算法【含Matlab源码 090期】
【图像分割】基于matlab四叉树图像分割【含Matlab源码 091期】
【图像分割】基于matlab心脏中心线提取【含Matlab源码 092期】
【图像识别】基于matlab svm植物叶子疾病检测和分类【含Matlab源码 093期】
【图像识别】基于matlab模板匹配之手写数字识别系统GUI界面【含Matlab源码 094期】
【图像识别】基于matlab不变矩的数字验证码识别含GUI界面【含Matlab源码 095期】
【图像识别】基于matlab条形码识别系统【含Matlab源码 096期】
【图像识别】基于matlab RGB和BP神经网络的人民币识别系统含GUI界面【含Matlab源码 097期】
【图像识别】基于matlab cnn卷积神经网络之验证码识别【含Matlab源码 098期】
【图像直线拟合】基于matlab最小二乘法的图像直线拟合【含Matlab源码 100期】
【图像去雾】基于matlab暗通道之图像去雾【含Matlab源码 101期】
【图像分割】基于matlab直觉模糊C均值聚类的图像分割IFCM【含Matlab源码 120期】
【图像分割】基于matlab最大类间方差法(otsu)图像分割【含Matlab源码 121期】
【模式识别】基于matlab银行监控系统人脸识别【含Matlab源码 125期】
【模式识别】基于matlab GUI界面的疲劳检测系统【含Matlab源码 126期】
【图像识别】基于matlab国外车牌识别【含Matlab源码 128期】
【图像分割】基于matlab蚁群优化模糊聚类的图像分割【含Matlab源码 130期】
【模式识别】基于matalb GUI界面的水果检测系统【含Matlab源码 173期】
【模式识别】基于matalb GUI界面的水果分类系统【含Matlab源码 174期】
【模式识别】基于matalb GUI界面的水果分级系统【含Matlab源码 175期】
【模式识别】基于matlab人脸识别之检测脸、眼、鼻子和嘴【含Matlab源码 178期】
基于matlab GUI界面处理录音与音频【含Matlab源码 181期】
【图像处理】基于matlab GUI界面的图像加解密【含Matlab源码 182期】
【模式识别】基于matlab GUI界面BP网络之手写体大写字母识别【含Matlab源码 183期】
【图像分割】基于matlab GUI界面医学影像分割【含Matlab源码 184期】
【图频处理】基于matlab GUI界面环图像处理与音乐播放系统【含Matlab源码 185期】
【图像隐藏】基于matlab Laguerre 变换的图像隐藏【含Matlab源码 193期】
【图像处理】基于matlab dwt函数实现二维小波变换【含Matlab源码 198期】
【图像处理】基于matlab分形插值算法调换图片【含Matlab源码 197期】
【图像边缘检测】基于matlab GUI界面图像边缘检测系统【含Matlab源码 203期】
【图像几何运算】基于matlab GUI界面之图像几何运算系统【含Matlab源码 206期】
【图像处理】基于matlab GUI界面之图像处理系统【含Matlab源码 207期】
【图像识别】基于matlab细胞识别和边缘检测【含Matlab源码 210期】
【模式识别】基于matlab 反馈神经Hopfield的数字识别【含Matlab源码 226期】
【模式识别】基于matlab之指纹图像细节特征提取 【含Matlab源码 227期】

猜你喜欢

转载自blog.csdn.net/TIQCmatlab/article/details/113694525