原理
matlab实现磨皮美颜效果主要是对图像进行低通滤波,滤除或大部分衰减图像的高频分量,留下其中的低频分量,使得图像可以降噪,平滑。SurfaceBlur算法也是其中一种算法,主要思想还是计算当前像素X的邻域范围内不同像素的加权求和,边缘地方的像素,加权比较大,平滑的地方加权比较小,以此来保留边缘信息,平滑平坦区域;而彩色图像的滤波需要分别对红绿蓝三个色彩通道都进行算法处理,然后使用cat函数进行串联处理。
公式如下:
部分代码如下
完整部分请前往我的资源
A=imread('images.jpg');%A:读取图像
r=2; %r:半径
T=10; %T:阈值
w=zeros(2*r+1,2*r+1); %模板矩阵的尺寸
%图像初始化处理
figure,imshow(A);title("原图");
% img=rgb2gray(A); %源图片转灰度图
%
% img=double(img); %转为矩阵
R=double(A(:,:,1));
G=double(A(:,:,2));
B=double(A(:,:,3));
%解决边界值问题
[m,n]=size(R);
i