PS 滤镜— —扇形warp

原创 2015年09月05日 15:09:52
    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);

    % set the parameters
    radius = 150;  % control the radius of the inner circle
    high = 200;    % control the distance between the inner circle and outer circle
    angle = 0;             
    spreadAngle=pi;    
    centerX = 0.5;  % set the center of the circle, proportion of the image size
    centerY = 1.0;

    icenterX=width*centerX;
    icenterY=height*centerY;

    Image_new=Image*0;

    for i=1:height
        for j=1:width

            dx=j-icenterX;
            dy=i-icenterY;

            theta=atan2(-dy, -dx)+angle;
            r=sqrt(dy*dy+dx*dx);

            theta=mod(theta, 2*pi);

            x=width * theta/(spreadAngle+0.00001);
            y=height * (1-(r-radius)/(high+0.00001));


    % %         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(i,j,:)=(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 滤镜算法— — 表面模糊

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

opengl中解决红蓝色颠倒的问题

本文出自HEHE的opengl的第35课 播放avi 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很...

Python: PS 滤镜--扇形变换

本文用 Python 实现 PS 滤镜中的一种几何变换特效,称为扇形变换,将图像扭曲成一个扇形,具体的算法原理和效果图可以参考以前的博客: http://blog.csdn.net/matrix_s...

PS 滤镜— —Marble 效果

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

PS 滤镜— —Twirl Filter

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

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 滤镜— —图像偏移

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 滤镜— — sparkle 效果

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

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