国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

這篇具有很好參考價(jià)值的文章主要介紹了【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、實(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)美化

【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

2.加入皮膚的亮白處理

(1)主程序

主設(shè)計(jì)方案:
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

代碼:

%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)圖像平滑

【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

代碼:

%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é)果:
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

(3)皮膚區(qū)域分割

【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))
3.1基于RGB空間的非膚色像素初步過(guò)濾
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

代碼:

%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空間范圍膚色分割
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

代碼:

%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é)果:
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

(4)圖像融合

【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

代碼:

%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é)果:
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

(5)圖像銳化

【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

代碼:

%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é)果:
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

(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é)果:
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))

(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)要介紹膚色模型的概念。
不同彩色空間膚色分布范圍
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xià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色度空間的分布
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))
為色度向量的均值和協(xié)方差矩陣,可通過(guò)多種方式獲取,數(shù)值略有區(qū)別,本例選擇
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))
得到膚色分布的概率圖后,確定閾值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é)果:
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))
【數(shù)字圖像處理】實(shí)驗(yàn)(3)——圖像綜合應(yīng)用:皮膚美化(MATLAB實(shí)現(xiàn))
從運(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)確性;

四、實(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)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)字圖像處理:實(shí)驗(yàn)三 圖像增強(qiáng)

    數(shù)字圖像處理:實(shí)驗(yàn)三 圖像增強(qiáng)

    圖像增強(qiáng)是數(shù)字圖像處理過(guò)程中常采用的一種方法。為了改善視覺(jué)效果或便于人和機(jī)器對(duì)圖像的理解和分析,根據(jù)圖像的特點(diǎn)或存在的問(wèn)題采取的改善方法或加強(qiáng)特征的措施稱為圖像增強(qiáng)。圖像增強(qiáng)處理是改變圖像視覺(jué)效果的手段,增強(qiáng)后的圖像便于對(duì)它的后續(xù)處理。圖像增

    2024年02月04日
    瀏覽(24)
  • 數(shù)字圖像處理報(bào)告:實(shí)驗(yàn)4 圖像復(fù)原

    數(shù)字圖像處理報(bào)告:實(shí)驗(yàn)4 圖像復(fù)原

    (四)實(shí)驗(yàn)4 圖像復(fù)原 一、實(shí)驗(yàn)主題 學(xué)習(xí)圖像復(fù)原的相關(guān)原理及實(shí)現(xiàn)方法,并掌握逆濾波、維納濾波的原理與程序?qū)崿F(xiàn)。 二、實(shí)驗(yàn)?zāi)康?1.掌握?qǐng)D像復(fù)原的基本原理和方法。 2.學(xué)習(xí)使用程序設(shè)計(jì)環(huán)境。 3.使用設(shè)計(jì)框架構(gòu)造應(yīng)用程序。 4.掌握逆濾波、維納濾波的原理和實(shí)現(xiàn)

    2024年02月08日
    瀏覽(20)
  • 數(shù)字信號(hào)與圖像處理實(shí)驗(yàn)三:圖像處理基礎(chǔ)與圖像變換

    數(shù)字信號(hào)與圖像處理實(shí)驗(yàn)三:圖像處理基礎(chǔ)與圖像變換

    ? 通過(guò)本實(shí)驗(yàn)加深對(duì)數(shù)字圖像的理解,熟悉MATLAB中的有關(guān)函數(shù);應(yīng)用DCT對(duì)圖像進(jìn)行變換;熟悉圖像常見的統(tǒng)計(jì)指標(biāo),實(shí)現(xiàn)圖像幾何變換的基本方法。 ? 選擇兩幅圖像,讀入圖像并顯示,同時(shí)使用Matlab計(jì)算圖像的大小,灰度平均值、協(xié)方差矩陣、灰度標(biāo)準(zhǔn)差和相關(guān)系數(shù)。 DC

    2024年02月04日
    瀏覽(24)
  • 數(shù)字圖像處理實(shí)驗(yàn)之Matlab對(duì)圖像的基本處理

    數(shù)字圖像處理實(shí)驗(yàn)之Matlab對(duì)圖像的基本處理

    1、提取Lena圖像的左半上角部分,與原始Lena圖像在同一個(gè)figure中顯示,并做適當(dāng)命名 效果圖 2、利用 imnoise ,?對(duì)原始Lena圖像疊加高斯噪聲,產(chǎn)生4幅、14幅、140幅的含噪圖像。對(duì)這些含噪圖像采用 相加 ?運(yùn)算,來(lái)驗(yàn)證、比較圖像相加消除疊加性噪聲的效果。將原始圖像、1幅噪

    2024年02月03日
    瀏覽(38)
  • 數(shù)字圖像處理實(shí)驗(yàn)報(bào)告

    數(shù)字圖像處理實(shí)驗(yàn)報(bào)告

    目錄 實(shí)驗(yàn)二、圖像在空間域上的處理方法 實(shí)驗(yàn)三、圖像在頻率域上的處理方法 一、實(shí)驗(yàn)?zāi)康?了解圖像亮(灰)度變換與空間濾波的意義和手段; 熟悉圖像亮(灰)度變換與空間濾波的MATLAB函數(shù)和語(yǔ)法; 熟練掌握應(yīng)用MATLAB軟件編程進(jìn)行圖像亮(灰)度變換與空間濾波的方法

    2024年02月08日
    瀏覽(16)
  • (數(shù)字圖像處理MATLAB+Python)第十章圖像分割-第四,五節(jié):分水嶺分割和綜合案例

    (數(shù)字圖像處理MATLAB+Python)第十章圖像分割-第四,五節(jié):分水嶺分割和綜合案例

    分水嶺分割 :圖像處理中常用的一種分割方法,它基于圖像中灰度或顏色的變化來(lái)劃分不同的區(qū)域。分水嶺分割算法的原理是基于地理學(xué)上的分水嶺概念。將圖像看作一個(gè) 地貌圖 ,在圖像中低洼的部分被看作水池,而高處則表示山脈。通過(guò)在圖像中加入水并讓其逐漸充滿,

    2024年02月10日
    瀏覽(96)
  • (數(shù)字圖像處理MATLAB+Python)第七章圖像銳化-第四節(jié):頻域高通濾波與綜合案例

    (數(shù)字圖像處理MATLAB+Python)第七章圖像銳化-第四節(jié):頻域高通濾波與綜合案例

    頻域高通濾波 :是一種基于頻域表示的圖像處理技術(shù),用于增強(qiáng)或突出圖像中高頻成分的方法。它通過(guò)將圖像轉(zhuǎn)換到頻域,應(yīng)用高通濾波器來(lái)抑制或減弱低頻成分,從而增強(qiáng)圖像的邊緣和細(xì)節(jié) 在頻域中,可以設(shè)計(jì)各種類型的高通濾波器來(lái)實(shí)現(xiàn)不同的頻率響應(yīng) 理想的高通濾波

    2024年02月08日
    瀏覽(31)
  • 數(shù)字圖像處理之matlab實(shí)驗(yàn)(五):形態(tài)學(xué)圖像處理

    數(shù)字圖像處理之matlab實(shí)驗(yàn)(五):形態(tài)學(xué)圖像處理

    常見的形態(tài)學(xué)處理包括腐蝕、膨脹、開運(yùn)算、閉運(yùn)算。不同的操作有不同的作用,同樣的操作在不同類型的圖片上也有不同效果,具體效果如下表格所示。要求熟練掌握對(duì)二值圖像的形態(tài)學(xué)處理。 不同操作對(duì)不同類型圖像處理效果 一、對(duì)二值圖像進(jìn)行處理 1、結(jié)構(gòu)元素 在開

    2024年02月04日
    瀏覽(27)
  • 【數(shù)字圖像處理】實(shí)驗(yàn)二 圖像增強(qiáng)(MATLAB實(shí)現(xiàn))

    【數(shù)字圖像處理】實(shí)驗(yàn)二 圖像增強(qiáng)(MATLAB實(shí)現(xiàn))

    目錄 一、實(shí)驗(yàn)意義及目的 二、實(shí)驗(yàn)內(nèi)容 三、Matlab 相關(guān)函數(shù)介紹 四、算法原理 五、參考代碼及擴(kuò)展代碼流程圖? (1)參考代碼流程圖 (2)擴(kuò)展代碼流程圖 六、參考代碼 七、實(shí)驗(yàn)要求 (1)對(duì)以上處理變換參數(shù),查看處理效果; (2)更改偽彩色增強(qiáng)方法為熱金屬編碼或彩

    2023年04月12日
    瀏覽(23)
  • 【數(shù)字圖像處理】實(shí)驗(yàn)三 圖像分割(MATLAB實(shí)現(xiàn))

    【數(shù)字圖像處理】實(shí)驗(yàn)三 圖像分割(MATLAB實(shí)現(xiàn))

    目錄 一、實(shí)驗(yàn)意義及目的 二、實(shí)驗(yàn)內(nèi)容 三、Matlab 相關(guān)函數(shù)介紹 四、算法原理 五、參考代碼及擴(kuò)展代碼流程圖 (1)參考代碼流程圖 (2)擴(kuò)展代碼流程圖 六、參考代碼 七、實(shí)驗(yàn)要求 (1)嘗試不同的閾值選擇方法,實(shí)現(xiàn)灰度圖像二值化 (2)變換參數(shù)實(shí)現(xiàn)形態(tài)學(xué)濾波,查看濾波

    2024年02月05日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包