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

% method : 利用邻域的任意一点代替当前邻域所有像素点

%%%% mosaic

clc;
clear all;
addpath('E:\PhotoShop Algortihm\Image Processing\PS 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);


原图



效果图



posted on 2014-08-20 09:23  木鱼哥  阅读(216)  评论(0编辑  收藏  举报

导航