PS滤镜— —波浪效果

    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滤镜— —波浪效果_第1张图片

效果图:

PS滤镜— —波浪效果_第2张图片

PS滤镜— —波浪效果_第3张图片

PS滤镜— —波浪效果_第4张图片

PS滤镜— —波浪效果_第5张图片

你可能感兴趣的:(算法,photoshop)