PS 滤镜— —水波效果

来源:互联网 发布:台词功底 知乎 编辑:程序博客网 时间:2024/05/05 08:11
    clc;    clear all;    close all;    addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');    I=imread('4.jpg');    I=double(I);    Image=I/255;    [height, width, depth]=size(Image);    wavelength = 20;    amplitude = 10;    phase = 0;    centreX = 0.5;    centreY = 0.5;    radius = 0;     if (radius==0)        radius=min(height, width)/2;    end    icentreX=width*centreX;    icentreY=height*centreY;    radius2=radius*radius;    Image_new=Image;     for ii=1:height        for jj=1:width             dx=jj-icentreX;             dy=ii-icentreY;             distance2=dx*dx+dy*dy;             if (distance2>radius2)                 x=jj;                 y=ii;             else                 distance=sqrt(distance2);                 amount=amplitude * sin(distance / wavelength * 2*pi - phase);                 amount =amount* (radius-distance)/radius;                 amount=amount*wavelength/(distance+0.0001);                 x =jj + dx*amount;                 y = ii + dy*amount;             end    % %         if (x<=1)     x=1;  end    % %         if (x>=width)   x=width-1; end;    % %         if (y>=height)  y=height-1; end;    % %         if (y<1)  y=1;     end;                   if (x<=1)     continue;  end            if (x>=width)   continue; end;            if (y>=height)  continue; end;            if (y<1)  continue;     end;            x1=floor(x);            y1=floor(y);            p=x-x1;            q=y-y1;            Image_new(ii,jj,:)=(1-p)*(1-q)*Image(y1,x1,:)+p*(1-q)*Image(y1,x1+1,:)...                +q*(1-p)*Image(y1+1,x1,:)+p*q*Image(y1+1,x1+1,:);        end     end     imshow(Image_new);

参考来源:http://www.jhlabs.com/index.html

原图:

这里写图片描述

效果图:

这里写图片描述

这里写图片描述

这里写图片描述

0 0
原创粉丝点击