表面滤波及其在人脸磨皮中的应用

表面滤波是一种保边滤波方法,它由当前灰度差的绝对值分配权重,具体公式见https://blog.csdn.net/xiaota00/article/details/74908785。下面给出表面滤波用于人脸磨皮实验的matlab代码及处理结果(这里给出了两种融合策略,其中一种是所谓“平湖法”,见https://www.cnblogs.com/Imageshop/p/4709710.html,另一种是由原图+平滑图像+精细纹理三成分组合的融合方法):

clear all;close all;clc;
img=imread('test1.png');
figure('name','原图'),imshow(img);
img=double(img);
% lpImg=denoiseBasedLocalStat(uint8(img),10,30);
lpImg=surfaceBlur(img,10,25);
figure('name','滤波结果'),imshow(lpImg);
lpImg=double(lpImg);
diff=double(img)-double(lpImg)+128;
figure('name','高频成分'),imshow(uint8(diff));
f=fspecial('gaussian',5,1.5);
fDiff=imfilter(diff,f);
figure('name','弱化的高频'),imshow(uint8(fDiff));

blurredImg=img-fDiff+128;
figure('name','保留精细纹理的去噪图像'),imshow(uint8(blurredImg));
w=0.8;
mergedImg2=(1-w)*img+w*blurredImg;
figure('name','第一种融合结果'),imshow(uint8(mergedImg2));

fineImg=diff-fDiff;
figure('name','精细纹理(放大结果)'),imshow(uint8(5*fineImg+128));
w1=1.0;w2=0.5;
mergedImg=(1-w1)*img+w1*lpImg+w2*fineImg;
figure('name','原图+低频+精细纹理'),imshow(uint8(mergedImg));

function blurredImg=surfaceBlur(img,r,th)
% 表面滤波
% 只接受值域为[0,255]的图像
if size(img,3)==1
    img=double(img);
    blurredImg=surfaceBlur_gray(img,r,th);
    blurredImg=uint8(blurredImg);
elseif size(img,3)==3
    img=double(img);
    for i=1:3
        img(:,:,i)=surfaceBlur_gray(img(:,:,i),r,th);
    end
    blurredImg=uint8(img);
end
end

function blurredImg=surfaceBlur_gray(img, r, th)
paddedImg=padarray(img,[r,r],'symmetric','both');
blurredImg=img;
for i=1+r : size(paddedImg,1)-r
    for j=1+r : size(paddedImg,2)-r
            block=paddedImg(i-r:i+r, j-r:j+r);
            w=max(1-abs(block-paddedImg(i,j))/(2.5*th),0);
            blurredImg(i-r, j-r)=sum(sum(block.*w))/sum(w(:));
    end    
end
end
原图
保边滤波结果

 

高频成分
高频滤波结果(中频)
去除中频的结果
原图与去中频结果叠加
精细纹理
原图+低频+精细纹理

 

 

 

 

 

 

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值