PS 滤镜算法原理 ——马赛克

% method : 利用邻域的随意一点取代当前邻域全部像素点

%%%% mosaic

clc;
clear all;
addpath('E:PhotoShop AlgortihmImage ProcessingPS Algorithm');
Image=imread('4.jpg');
Image=double(Image);
size_info=size(Image);  
height=size_info(1);  
width=size_info(2);  

N=11;   % 控制邻域大小
Image_out=Image;  
for i=1+N:N:height-N  
    for j=1+N:N:width-N
       k1=rand()-0.5;
       k2=rand()-0.5;
       m=(k1*(N*2-1));  
       n=(k2*(N*2-1));
       h=floor(mod(i+m,height));  
       w=floor(mod(j+n,width));  
       if w==0;  
           w=width;  
       end  
       if h==0  
            h=height;  
       end     
      Image_out(i-N:i+N,j-N:j+N,1)=Image(h,w,1);
      Image_out(i-N:i+N,j-N:j+N,2)=Image(h,w,2);
      Image_out(i-N:i+N,j-N:j+N,3)=Image(h,w,3);
    end  
end  

imshow(Image_out/255);


原图



效果图



原文地址:https://www.cnblogs.com/zfyouxi/p/5158503.html