PS 滤镜— —Twirl Filter

    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);
     angle=pi/2;
     centreX = 0.5;
     centreY = 0.5;
     radius=200;
     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);
                 a = atan2(dy, dx) + angle * (radius-distance) / radius;
                 x = icentreX + distance*cos(a);
                 y = icentreY + distance*sin(a);
             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

原图:

效果图:

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

时间: 2024-11-05 22:44:10

PS 滤镜— —Twirl Filter的相关文章

PS 滤镜——染色玻璃

%%%% 完成PS 中的染色玻璃滤镜特效 clc; clear all; close all; Image=imread('4.jpg'); Image=double(Image); Gray_Image=rgb2gray(Image/255); [row,col]=size(Gray_Image); S_filter=fspecial('sobel'); G=sqrt(imfilter(Gray_Image, S_filter, 'replicate').^2+... imfilter(Gra

PS 滤镜算法原理 ——马赛克

% method : 利用邻域的任意一点代替当前邻域所有像素点 %%%% mosaic clc; clear all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); Image=imread('4.jpg'); Image=double(Image); size_info=size(Image); height=size_info(1); width=size_info(2); N=11;   % 控制邻域大小

PS 滤镜算法原理——照亮边缘

这个算法原理很简单,对彩色图像的R,G,B 三个通道,分别求梯度,然后将梯度值作为三个通道的值. clc; clear all; Image=imread('4.jpg'); Image=double(Image); R=Image(:,:,1); G=Image(:,:,2); B=Image(:,:,3); R_Gradient=Find_Gradient(R); G_Gradient=Find_Gradient(G); B_Gradient=Find_Gradient(B); Image_

PS 滤镜算法原理——浮雕效果

clc; clear all; Image=imread('4.jpg'); Image=double(Image); R=Image(:,:,1); G=Image(:,:,2); B=Image(:,:,3); p=3;  %% 控制浮雕的强度 %% 控制浮雕的方向 H=[0 0 p 0 0 0 -p 0 0]; Image_new=imfilter(Image,H,'conv')+128; figure, imshow(Image_new/255); 原图 效果图 PS 滤镜算法原理--浮

OpenCV——PS 滤镜, 浮雕效果

具体的算法原理可以参考: PS 滤镜, 浮雕效果 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <iostream> #include <string> #include "cv.h" #include "highgui.h" #include "cxmat.hpp" #inc

OpenCV——PS 滤镜, 曝光过度

算法原理可以参考: PS 滤镜,曝光过度 #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <iostream> #include <string> #include "cv.h" #include "highgui.h" #include "cxmat.hpp" #include "cxcore.hpp"

CSS3滤镜(filter)--CSS3技术

filter 属性定义了元素(通常是<img>)的可视效果,例如图片的模糊.饱和度.灰度等……个人感觉功能很强大 1.filter的语法 filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url(); 2.各大浏览器当前时间的支持情况(来自Can I use:h

利用Perlin nosie 完成(PS 滤镜—— 分成云彩)

%%%% Cloud %%%% 利用perlin noise生成云彩 clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); Image=imread('4.jpg'); Image=double(Image); [row,col,layer]=size(Image); baseNoise=rand(row,col); persistance = 0.9; totalA

PS 滤镜——(扭曲)球面化 Spherize

%%%% Spherize clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread('4.jpg'); Image=double(I); [row, col,layer]=size(Image); R=floor(min(row, col)/2); a=row/2; b=col/2; e=a/b; K=pi/2; alpha=1.0; % 控制变形程度