一、實(shí)驗(yàn)?zāi)康?/h2>
(1)了解和掌握?qǐng)D像處理工具 Matlab ,熟悉基于 Matlab 的圖像處理函數(shù),并為下一步編程進(jìn)行圖像處理打下基礎(chǔ)。
(2)理解色彩的概念,掌握?qǐng)D像代數(shù)運(yùn)算,幾何變換方法。
二、實(shí)驗(yàn)原理
1.灰度線性變換就是將圖像中所有點(diǎn)的灰度按照線性灰度變換函數(shù)進(jìn)行變換。
2.直方圖均衡化通過(guò)點(diǎn)運(yùn)算將輸入圖像轉(zhuǎn)換為在每一級(jí)上都有相等像素點(diǎn)數(shù)的輸出圖像。
3.圖像算術(shù)運(yùn)算:兩幅輸入圖像之間進(jìn)行的點(diǎn)對(duì)點(diǎn)的加、減、乘、除運(yùn)算后得到輸出圖像的過(guò)程。
4.圖像插值是一種基本的圖像處理方法,它可以為數(shù)字圖像增加或減少像素的數(shù)目。
當(dāng)圖像被放大時(shí),像素會(huì)相應(yīng)地增加,該像素增加的過(guò)程實(shí)際就是插值程序自動(dòng)選擇信息較好的像素作為新的像素以彌補(bǔ)空白像素空間的過(guò)程。雖然經(jīng)過(guò)插值后圖像可以變得更平滑、干凈,但由于新增加的像素也僅僅只是原始像素的某種組合而已,所以圖像的插值運(yùn)算并不會(huì)增加新的圖像信息。
三、實(shí)驗(yàn)步驟(包括分析、代碼和波形)
1.濾波、色彩空間、代數(shù)運(yùn)算、銳化等技術(shù)實(shí)現(xiàn)美化
2.加入皮膚的亮白處理
(1)主程序
主設(shè)計(jì)方案:
代碼:
%1.主程序
clear,clc,close all;
ImageOrigin=im2double(imread('lotus1.bmp'));
figure,imshow(ImageOrigin),title('原圖');
DBImage=DBfilt(ImageOrigin); %雙邊濾波
SkinImage1=FirstFilter(ImageOrigin); %%初步過(guò)濾
SkinArea=SecondFilter(SkinImage1); %%YCgCr空間范圍膚色檢測(cè)
SkinFuse=Fuse(ImageOrigin,DBImage,SkinArea);%圖像融合
SkinBeautify=Sharp(SkinFuse); %圖像銳化
Meibai=MB(SkinBeautify);
(2)圖像平滑
代碼:
%2.圖像平滑
function Out=DBfilt(In)
[height,width,c] = size(In);
win=15; % 定義雙邊濾波窗口寬度
sigma_s=6; sigma_r=0.1; % 雙邊濾波的兩個(gè)標(biāo)準(zhǔn)差參數(shù)
[X,Y] = meshgrid(-win:win,-win:win);
Gs = exp(-(X.^2+Y.^2)/(2*sigma_s^2));%計(jì)算鄰域內(nèi)的空間權(quán)值
Out=zeros(height,width,c);
for k=1:c
for j=1:height
for i=1:width
temp=In(max(j-win,1):min(j+win,height),max(i-win,1):min(i+win,width),k);
Gr = exp(-(temp-In(j,i,k)).^2/(2*sigma_r^2));%計(jì)算灰度鄰近權(quán)值
% W為空間權(quán)值Gs和灰度權(quán)值Gr的乘積
W = Gr.*Gs((max(j-win,1):min(j+win,height))-j+win+1,(max(i-win,1):min(i+win,width))-i+win+1);
Out(j,i,k)=sum(W(:).*temp(:))/sum(W(:));
end
end
end
figure,imshow(Out),title('雙邊濾波');
end
結(jié)果:
(3)皮膚區(qū)域分割
3.1基于RGB空間的非膚色像素初步過(guò)濾
代碼:
%3.皮膚區(qū)域分割
%3.1基于RGB空間的非膚色像素初步過(guò)濾
function Out=FirstFilter(In)
Out=In;
[height,width,c] = size(In);
IR=In(:,:,1); IG=In(:,:,2);IB=In(:,:,3);
for j=1:height
for i=1:width
if (IR(j,i)<160/255 && IG(j,i)<160/255 && IB(j,i)<160) && (IR(j,i)>IG(j,i) && IG(j,i)>IB(j,i))
Out(j,i,:)=0;
end
if IR(j,i)+IG(j,i)>500/255
Out(j,i,:)=0;
end
if IR(j,i)<70/255 && IG(j,i)<40/255 && IB(j,i)<20/255
Out(j,i,:)=0;
end
end
end
figure,imshow(Out);title('非膚色初步過(guò)濾');
end
3.2基于YCgCr空間范圍膚色分割
代碼:
%3.2基于YCgCr空間范圍膚色分割
function Out=SecondFilter(In)
IR=In(:,:,1); IG=In(:,:,2);IB=In(:,:,3);
[height,width,c] = size(In);
Out=zeros(height,width);
for i=1:width
for j=1:height
R=IR(j,i); G=IG(j,i); B=IB(j,i);
Cg=(-81.085)*R+(112)*G+(-30.915)*B+128;
Cr=(112)*R+(-93.786)*G+(-18.214)*B+128;
if Cg>=85 && Cg<=135 && Cr>=-Cg+260 && Cr<=-Cg+280
Out(j,i)=1;
end
end
end
Out=medfilt2(Out,[3 3]);
figure,imshow(Out),title('YCgCr空間范圍膚色檢測(cè)');
end
結(jié)果:
(4)圖像融合
代碼:
%4.圖像融合
function Out=Fuse(ImageOrigin,DBImage,SkinArea)
Skin=zeros(size(ImageOrigin));
Skin(:,:,1)=SkinArea;
Skin(:,:,2)=SkinArea;
Skin(:,:,3)=SkinArea;
Out=DBImage.*Skin+double(ImageOrigin).*(1-Skin);
figure,imshow(Out);title('膚色與背景圖像融合');
end
結(jié)果:
(5)圖像銳化
代碼:
%5.圖像銳化
function Out=Sharp(In)
H=[0 -1 0;-1 4 -1;0 -1 0]; %Laplacian銳化模板
Out(:,:,:)=imfilter(In(:,:,:),H);
Out=Out/3+In;
% imwrite(Out,'man4.jpg');
figure,imshow(Out),title('Laplacia銳化圖像');
end
結(jié)果:
(6)皮膚亮白處理
皮膚的亮白處理采用白平衡法
美白主要分為兩個(gè)階段
(1)近白色點(diǎn)的檢測(cè),作為參考白點(diǎn)
(2)根據(jù)近白點(diǎn)算出RGB調(diào)整比例
YCrCb空間介紹
YCrCb又稱YUV,主要用于優(yōu)化彩色視頻信號(hào)的傳輸,使其向后兼容老式黑白電視。
Y分量表示圖像的亮度成分
Cr分量表示圖像紅色部分與亮度值之間的差異
Cb分量表示圖像藍(lán)色部分與亮度值之間的差異
以lena圖為例,分別展示YCrCb三通道的實(shí)際分離效果
代碼:
im = imread('face10.jpg');
im1=rgb2ycbcr(im);%將圖片的RGB值轉(zhuǎn)換成YCbCr值%
YY=im1(:,:,1);
Cb=im1(:,:,2);
Cr=im1(:,:,3);
[x y z]=size(im);
tst=zeros(x,y);
Mb=mean(mean(Cb));
Mr=mean(mean(Cr));
%計(jì)算Cb、Cr的均方差%
Tb = Cb-Mb;
Tr = Cr-Mr;
Db=sum(sum((Tb).*(Tb)))/(x*y);
Dr=sum(sum((Tr).*(Tr)))/(x*y);
%根據(jù)閥值的要求提取出near-white區(qū)域的像素點(diǎn)%
cnt=1;
for i=1:x
for j=1:y
b1=Cb(i,j)-(Mb+Db*sign(Mb));
b2=Cr(i,j)-(1.5*Mr+Dr*sign(Mr));
if (b1<abs(1.5*Db) && b2<abs(1.5*Dr))
Ciny(cnt)=YY(i,j);
tst(i,j)=YY(i,j);
cnt=cnt+1;
end
end
end
cnt=cnt-1;
iy=sort(Ciny,'descend');%將提取出的像素點(diǎn)從亮度值大的點(diǎn)到小的點(diǎn)依次排列%
nn=round(cnt/10);
Ciny2(1:nn)=iy(1:nn);%提取出near-white區(qū)域中10%的亮度值較大的像素點(diǎn)做參考白點(diǎn)%
%提取出參考白點(diǎn)的RGB三信道的值%
mn=min(Ciny2);
for i=1:x
for j=1:y
if tst(i,j)<mn
tst(i,j)=0;
else
tst(i,j)=1;
end
end
end
R=im(:,:,1);
G=im(:,:,2);
B=im(:,:,3);
R=double(R).*tst;
G=double(G).*tst;
B=double(B).*tst;
%計(jì)算參考白點(diǎn)的RGB的均值%
Rav=mean(mean(R));
Gav=mean(mean(G));
Bav=mean(mean(B));
Ymax=double(max(max(YY)))*0.15;%計(jì)算出圖片的亮度的最大值%
%計(jì)算出RGB三信道的增益%
Rgain=Ymax/Rav;
Ggain=Ymax/Gav;
Bgain=Ymax/Bav;
%通過(guò)增益調(diào)整圖片的RGB三信道%
im(:,:,1)=im(:,:,1)*Rgain;
im(:,:,2)=im(:,:,2)*Ggain;
im(:,:,3)=im(:,:,3)*Bgain;
imshow(im),title('皮膚亮白處理');
結(jié)果:
(7)整體代碼
代碼:
%1.主程序
clear,clc,close all;
ImageOrigin=im2double(imread('lotus1.bmp'));
figure,imshow(ImageOrigin),title('原圖');
DBImage=DBfilt(ImageOrigin); %雙邊濾波
SkinImage1=FirstFilter(ImageOrigin); %%初步過(guò)濾
SkinArea=SecondFilter(SkinImage1); %%YCgCr空間范圍膚色檢測(cè)
SkinFuse=Fuse(ImageOrigin,DBImage,SkinArea);%圖像融合
SkinBeautify=Sharp(SkinFuse); %圖像銳化
Meibai=MB(SkinBeautify);
%2.圖像平滑
function Out=DBfilt(In)
[height,width,c] = size(In);
win=15; % 定義雙邊濾波窗口寬度
sigma_s=6; sigma_r=0.1; % 雙邊濾波的兩個(gè)標(biāo)準(zhǔn)差參數(shù)
[X,Y] = meshgrid(-win:win,-win:win);
Gs = exp(-(X.^2+Y.^2)/(2*sigma_s^2));%計(jì)算鄰域內(nèi)的空間權(quán)值
Out=zeros(height,width,c);
for k=1:c
for j=1:height
for i=1:width
temp=In(max(j-win,1):min(j+win,height),max(i-win,1):min(i+win,width),k);
Gr = exp(-(temp-In(j,i,k)).^2/(2*sigma_r^2));%計(jì)算灰度鄰近權(quán)值
% W為空間權(quán)值Gs和灰度權(quán)值Gr的乘積
W = Gr.*Gs((max(j-win,1):min(j+win,height))-j+win+1,(max(i-win,1):min(i+win,width))-i+win+1);
Out(j,i,k)=sum(W(:).*temp(:))/sum(W(:));
end
end
end
figure,imshow(Out),title('雙邊濾波');
end
%3.皮膚區(qū)域分割
%3.1基于RGB空間的非膚色像素初步過(guò)濾
function Out=FirstFilter(In)
Out=In;
[height,width,c] = size(In);
IR=In(:,:,1); IG=In(:,:,2);IB=In(:,:,3);
for j=1:height
for i=1:width
if (IR(j,i)<160/255 && IG(j,i)<160/255 && IB(j,i)<160) && (IR(j,i)>IG(j,i) && IG(j,i)>IB(j,i))
Out(j,i,:)=0;
end
if IR(j,i)+IG(j,i)>500/255
Out(j,i,:)=0;
end
if IR(j,i)<70/255 && IG(j,i)<40/255 && IB(j,i)<20/255
Out(j,i,:)=0;
end
end
end
figure,imshow(Out);title('非膚色初步過(guò)濾');
end
%3.2基于YCgCr空間范圍膚色分割
function Out=SecondFilter(In)
IR=In(:,:,1); IG=In(:,:,2);IB=In(:,:,3);
[height,width,c] = size(In);
Out=zeros(height,width);
for i=1:width
for j=1:height
R=IR(j,i); G=IG(j,i); B=IB(j,i);
Cg=(-81.085)*R+(112)*G+(-30.915)*B+128;
Cr=(112)*R+(-93.786)*G+(-18.214)*B+128;
if Cg>=85 && Cg<=135 && Cr>=-Cg+260 && Cr<=-Cg+280
Out(j,i)=1;
end
end
end
Out=medfilt2(Out,[3 3]);
figure,imshow(Out),title('YCgCr空間范圍膚色檢測(cè)');
end
%4.圖像融合
function Out=Fuse(ImageOrigin,DBImage,SkinArea)
Skin=zeros(size(ImageOrigin));
Skin(:,:,1)=SkinArea;
Skin(:,:,2)=SkinArea;
Skin(:,:,3)=SkinArea;
Out=DBImage.*Skin+double(ImageOrigin).*(1-Skin);
figure,imshow(Out);title('膚色與背景圖像融合');
end
%5.圖像銳化
function Out=Sharp(In)
H=[0 -1 0;-1 4 -1;0 -1 0]; %Laplacian銳化模板
Out(:,:,:)=imfilter(In(:,:,:),H);
Out=Out/3+In;
% imwrite(Out,'man4.jpg');
figure,imshow(Out),title('Laplacia銳化圖像');
end
%6.皮膚亮白處理
function Out=MB(SkinBeautify)
%im = imread('face9.jpg');
Out=rgb2ycbcr(SkinBeautify);%將圖片的RGB值轉(zhuǎn)換成YCbCr值%
YY=Out(:,:,1);
Cb=Out(:,:,2);
Cr=Out(:,:,3);
[x y z]=size(SkinBeautify);
tst=zeros(x,y);
Mb=mean(mean(Cb));
Mr=mean(mean(Cr));
%計(jì)算Cb、Cr的均方差%
Tb = Cb-Mb;
Tr = Cr-Mr;
Db=sum(sum((Tb).*(Tb)))/(x*y);
Dr=sum(sum((Tr).*(Tr)))/(x*y);
%根據(jù)閥值的要求提取出near-white區(qū)域的像素點(diǎn)%
cnt=1;
for i=1:x
for j=1:y
b1=Cb(i,j)-(Mb+Db*sign(Mb));
b2=Cr(i,j)-(1.5*Mr+Dr*sign(Mr));
if (b1<abs(1.5*Db) && b2<abs(1.5*Dr))
Ciny(cnt)=YY(i,j);
tst(i,j)=YY(i,j);
cnt=cnt+1;
end
end
end
cnt=cnt-1;
iy=sort(Ciny,'descend');%將提取出的像素點(diǎn)從亮度值大的點(diǎn)到小的點(diǎn)依次排列%
nn=round(cnt/10);
Ciny2(1:nn)=iy(1:nn);%提取出near-white區(qū)域中10%的亮度值較大的像素點(diǎn)做參考白點(diǎn)%
%提取出參考白點(diǎn)的RGB三信道的值%
mn=min(Ciny2);
for i=1:x
for j=1:y
if tst(i,j)<mn
tst(i,j)=0;
else
tst(i,j)=1;
end
end
end
R=SkinBeautify(:,:,1);
G=SkinBeautify(:,:,2);
B=SkinBeautify(:,:,3);
R=double(R).*tst;
G=double(G).*tst;
B=double(B).*tst;
%計(jì)算參考白點(diǎn)的RGB的均值%
Rav=mean(mean(R));
Gav=mean(mean(G));
Bav=mean(mean(B));
Ymax=double(max(max(YY)))*0.15;%計(jì)算出圖片的亮度的最大值%
%計(jì)算出RGB三信道的增益%
Rgain=Ymax/Rav;
Ggain=Ymax/Gav;
Bgain=Ymax/Bav;
%通過(guò)增益調(diào)整圖片的RGB三信道%
SkinBeautify(:,:,1)=SkinBeautify(:,:,1)*Rgain;
SkinBeautify(:,:,2)=SkinBeautify(:,:,2)*Ggain;
SkinBeautify(:,:,3)=SkinBeautify(:,:,3)*Bgain;
figure,imshow(Out),title('皮膚美化');
end
3.嘗試其它膚色檢測(cè)處理
膚色檢測(cè)
膚色是人類皮膚重要特征之一,在檢測(cè)人臉或手等目標(biāo)時(shí)常采用膚色檢測(cè)的方法,將相關(guān)區(qū)域從圖像中分割出來(lái)。
膚色檢測(cè)方法:
膚色檢測(cè)方法有很多,但無(wú)論是基于不同的色彩空間還是不同的膚色模型,其根本出發(fā)點(diǎn)在于膚色分布的聚集性,即膚色的顏色分量一般聚集在某個(gè)范圍內(nèi)。通過(guò)大量的膚色樣本進(jìn)行統(tǒng)計(jì),找出膚色顏色分量的聚集范圍或用特殊的分布模型去模擬膚色分布,進(jìn)而實(shí)現(xiàn)對(duì)任意像素顏色的判別。
本例主要采用膚色顏色分量分布范圍的方法,簡(jiǎn)要介紹膚色模型的概念。
不同彩色空間膚色分布范圍
膚色模型
膚色模型是根據(jù)大量樣本的統(tǒng)計(jì)數(shù)據(jù)建立以確定膚色的分布規(guī)律,進(jìn)而判斷像素的色彩是否屬于膚色或與膚色相似程度的模型。常用的有闕值模型、高斯模型和橢圓模型。
1)閾值模型
國(guó)值模型是用數(shù)學(xué)表達(dá)式明確膚色分布范圍的建模方法。這類方法依據(jù)膚色分布范圍進(jìn)行檢測(cè),判斷簡(jiǎn)單、明確、快捷,但需要選擇合適的顏色空間及合適的參數(shù)。
2)高斯膚色模型
利用高斯函數(shù)模擬膚色在CbCr色度空間的分布
為色度向量的均值和協(xié)方差矩陣,可通過(guò)多種方式獲取,數(shù)值略有區(qū)別,本例選擇
得到膚色分布的概率圖后,確定閾值T,如果p>T,則對(duì)應(yīng)像素點(diǎn)為膚色點(diǎn)﹔反之,為非像素點(diǎn)。可以看出,膚色檢測(cè)的精確度依賴于閾值的選擇
在下面示例中,不討論最佳閾值的確定,采用固定閾值的方法,實(shí)施效果因不同圖像而異;
3)橢圓模型
將圖像從RGB轉(zhuǎn)換到Y(jié)CbCr彩色空間,并進(jìn)行非線性分段色彩變換,變換后膚色的CbCr分布近似橢圓,經(jīng)實(shí)驗(yàn)可確定橢圓表達(dá)式的參數(shù)。對(duì)于待判斷的顏色,經(jīng)同樣的變換,若在橢圓內(nèi),則可以判斷其為膚色,否則為非膚色;
檢測(cè)出的膚色區(qū)域存在不連續(xù)、噪聲大的特點(diǎn),往往需要利用濾波等方法,修正膚色區(qū)域,建議在后續(xù)學(xué)習(xí)過(guò)濾波方法后,改進(jìn)相應(yīng)的程序。
代碼:
clear,clc,close all;
Image=imread('lotus1.bmp');
figure,imshow(Image),title('原圖');
r=double(Image(:,:,1)); % 提取紅色分量并轉(zhuǎn)化為高精度
g=double(Image(:,:,2));
b=double(Image(:,:,3));
[N,M]=size(r); % 提取矩陣r的大小 NxM
miu=[117.4361 156.5599]'; % 高斯膚色模型均值
sigma=[160.1301 12.1430;12.1430 299.4574]; % 高斯膚色模型協(xié)方差矩陣
cbcr=zeros(2,1); % 生成 2x1矩陣
SkinCbCrG=zeros(N,M); % 生成所有值為0的 NxM矩陣用于存放處理后圖像
SkinRGB=zeros(N,M);
SkinHSV=zeros(N,M);
SkinCbCr=zeros(N,M);
thresh=0.35; % 膚色概率二值化闕值
for i=1:M % 循環(huán)圖像每一個(gè)像素點(diǎn) 列循環(huán)
for j=1:N % 行循環(huán)
R=r(j,i); % 將圖像紅色分量中(j,i)點(diǎn)值賦值給R
G=g(j,i);
B=b(j,i);
if (R>95 && G>40 && B>20 && (R-G)>15 && R-B>15) || ... % RGB空間膚色檢測(cè)
(R>220 && G>210 && B>170 && R-B<=15 && R>B && G>B) % 符合RGB膚色檢測(cè)條件的像素點(diǎn)值置1則為白色,其他不符合條件的像素點(diǎn)為0黑色
SkinRGB(j,i)=1;
end
maxRGB=max(max(R,G),B); % 取三分量中同一點(diǎn)最大值
minRGB=min(min(R,G),B); % 取三分量中同一點(diǎn)最小值
C=maxRGB-minRGB; % 取最大差值
V=maxRGB; % 最大值賦值給參數(shù)V
if V==0 % 比較最大值是否等于零
S=0;
else
S=C/V; % 最大值不等于零則 C最大差值/V最大值
end
if maxRGB==R % 如果該點(diǎn)最大值==紅色分量值;作如下處理
H=60*mod((G-B)/C,6);
elseif maxRGB==G % 如果該點(diǎn)最大值==綠色分量值;作如下處理
H=60*((B-R)/C+2);
elseif maxRGB==B % 如果該點(diǎn)最大值==藍(lán)色分量值;作如下處理
H=60*((R-G)/C+4);
end % 符合HSV膚色檢測(cè) 將該點(diǎn)值置1
if ((H>=0 && H<=25) || (H>=335 && H<=360)) && (S>=0.2 && S<=0.6) && V>=0.4
SkinHSV(j,i)=1; % 優(yōu)化 HSV 效果增強(qiáng)?如何改?為什么這樣改?
end
R=R/255;G=G/255;B=B/255; % RGB 轉(zhuǎn) YCrCb 公式
Cb=224*(-0.1687*R-0.3313*G+0.5*B)+128;
Cr=224*(0.5*R-0.4187*G-0.0813*B)+128;
if Cb>=77 && Cb<=127 && Cr>=133 && Cr<=173 % 符合 YCrCb膚色檢測(cè) 將該點(diǎn)值置1
SkinCbCr(j,i)=1;
end
cbcr= [Cb Cr]'; % YCbCr空間基于高斯模型的膚色檢測(cè)
p=exp(-0.5*((cbcr-miu)')*(inv(sigma))*(cbcr-miu)); % 高斯模型函數(shù)
if p>thresh % p > 闕值0.35 值置1
SkinCbCrG(j,i)=1;
end
end
end
figure,imshow(SkinRGB),title('RGB空間膚色檢測(cè)');
figure,imshow(SkinHSV),title('HSV空間膚色檢測(cè)');
figure,imshow(SkinCbCr),title('YCbCr空間范圍膚色檢測(cè)');
figure,imshow(SkinCbCrG),title('YCbCr空間高斯模型膚色檢測(cè)');
%imwrite(SkinRGB,'skinrgb3.jpg');
%imwrite(SkinHSV,'skinhsv3.jpg');
%imwrite(SkinCbCr,'skincbcr3.jpg');
%imwrite(SkinCbCrG,'skinCbCrG3.jpg');
結(jié)果:
從運(yùn)行結(jié)果可以看出,利用各個(gè)彩色空間膚色分布范圍能夠檢測(cè)出膚色,HSV空間檢測(cè)的結(jié)果比較零散??傮w來(lái)講,基于膚色分布范圍的檢測(cè)方法的準(zhǔn)確率不高;基于高斯模型的檢測(cè)結(jié)果相對(duì)較好,若采用動(dòng)態(tài)閾值方法﹐會(huì)進(jìn)一步提高檢測(cè)準(zhǔn)確性;文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-446961.html
四、實(shí)驗(yàn)總結(jié)
在人臉檢測(cè)中也常常用到Y(jié)CrCb空間,因?yàn)橐话愕膱D像都是基于RGB空間的,在RGB空間里人臉的膚色受亮度影響相當(dāng)大,所以膚色點(diǎn)很難從非膚色點(diǎn)中分離出來(lái),也就是說(shuō)在此空間經(jīng)過(guò)處理后,膚色點(diǎn)是離散的點(diǎn),中間嵌有很多非膚色,這為膚色區(qū)域標(biāo)定(人臉標(biāo)定、眼睛等)帶來(lái)了難題。如果把RGB轉(zhuǎn)為YCrCb空間的話,可以忽略Y(亮度)的影響,因?yàn)樵摽臻g受亮度影響很小,膚色會(huì)產(chǎn)生很好的類聚。這樣就把三維的空間降為二維的CrCb,膚色點(diǎn)會(huì)形成一定得形狀,如:人臉的話會(huì)看到一個(gè)人臉的區(qū)域,手臂的話會(huì)看到一條手臂的形態(tài),對(duì)處理模式識(shí)別很有好處,根據(jù)經(jīng)驗(yàn)?zāi)滁c(diǎn)的CrCb值滿足:133≤Cr≤173,77≤Cb≤127 那么該點(diǎn)被認(rèn)為是膚色點(diǎn),其他的就為非膚色點(diǎn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-446961.html
到了這里,關(guān)于【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!