PS 滤镜— —挤压效果

原创 2015年08月09日 10:40:53
    clc;
    clear all;
    close all;

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

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

    angle = pi/4;
    centreX = 0.5;
    centreY = 0.5;
    radius=200;
    amount=0.75;

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

    Image_new=Image;

    icentreX = width * centreX;
    icentreY = height * centreY;

    if ( radius == 0 )
        radius=min(icentreX, icentreY);
    end

    radius2=radius*radius;


    for ii=1:height

        for jj=1:width

            dx = jj-icentreX;
            dy = ii-icentreY;

            distance = dx*dx + dy*dy;

            if (distance>radius2 || distance==0)
                x=jj;
                y=ii;
            else
                 d = sqrt( distance / radius2 );
                 t = sin( pi*0.5 * d ).^(-amount);

                dx =dx* t;
                dy =dy* t;

                e = 1 - d;
                a = angle * e * e;

                s = sin( a );
                c = cos( a );

                x = icentreX + c*dx - s*dy;
                y = icentreY + s*dx + c*dy;
            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)
    imwrite(Image_new, 'out.jpg');

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

原图:

这里写图片描述

效果图:

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PhotoShop算法实现高级篇--挤压特效(三十六)

PhotoShop算法实现高级篇--挤压特效(三十六) ...

PS 滤镜— — 万花筒效果

clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imre...

OpenCV——PS滤镜算法之 球面化 (凹陷效果)

// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include #...

PS 滤镜— —Marble 效果

clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imre...

PS 滤镜— —水波效果

clc; clear all; close all;addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');I=imread('...

PS 滤镜— —球面化效果

clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imre...

PS 滤镜— — sparkle 效果

clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imre...

PS滤镜— —波浪效果

clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imre...

PS 滤镜算法— — 表面模糊

图像的表面模糊处理,其作用是在保留图像边缘的情况下,对图像的表面进行模糊处理。在对人物皮肤处理上,比高斯模糊更有效。因为高斯模糊在使人物皮肤光洁的同时,也将一些边缘特征如脸部的眉毛、嘴唇等给模糊了,不...

PS 滤镜— —图像偏移

clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imre...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PS 滤镜— —挤压效果
举报原因:
原因补充:

(最多只允许输入30个字)