clc;
clear all;
close all;

addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');

I=imread('4.jpg');
I=double(I);
Image=I/255;

xAmplitude = 25.0;
yAmplitude = 25.0;
xWavelength =32.0
yWavelength = 32.0;

SINE=1;
SAWTOOTH=2;
TRIANGLE=3;
NOISE=4;

[height, width, depth]=size(Image);

Image_new=Image;

wavetype=1;

[ind, g1, g2, g3]=init_arr();


for ii=1:height
for jj=1:width

nx = ii / xWavelength;
ny = jj / yWavelength;

switch wavetype

case 1
fx=sin(nx);
fy=sin(ny);

case 2
fx=mod(nx, 1);
fy=mod(ny, 1);

case 3
fx=triangle(nx);
fy=triangle(ny);

case 4
fx=Noise1(nx, ind, g1);
fy=Noise1(ny, ind, g1);

end

x=jj+xAmplitude * fx;
y=ii+yAmplitude * fy;

% % 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)
imwrite(Image_new, 'out.jpg');


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

原图:

PS滤镜— —波浪效果_html

效果图:

PS滤镜— —波浪效果_html_02

PS滤镜— —波浪效果_html_03

PS滤镜— —波浪效果_html_04

PS滤镜— —波浪效果_html_05