matlab实现证件照换底+美肤的功能
f=imread('boy2.png');subplot(1,3,1);imshow(f);title('原图');
a=f(:,:,3); %确定图像的大小
[m,n]=size(a);
for x=1:m
for y=1:n
if f(x,y,3) >170 && f(x,y,1)<110
f(x,y,1)=255;
f(x,y,2)=255;
f(x,y,3)=255;
end
end
end
subplot(1,3,2),imshow(f);title('换底');
[h w] = size(f);
p=f;
n=2;
a=mod(h,n);
b=mod(w,n);
for i=1:n:h-a
for j=1:n:w-b
p(i:i+n-1,j:j+n-1)=mean(mean(f(i:i+n-1,j:j+n-1)));%将图像马赛克
end
end
h=fspecial('log');
i=imfilter(p, h);%拉普拉斯高斯算子边缘提取后的图片
p1=i+f;%原图像加上边缘提取后的图片
h=fspecial('average',3);
p=imfilter(p1, h);%再将图片经过均值滤波加强
subplot(1,3,3);%
imshow(p);title('换底且美化后的图像')