zoukankan      html  css  js  c++  java
  • PS 滤镜— —扇形warp

        clc;
        clear all;
        close all;
    
        addpath('E:PhotoShop AlgortihmImage ProcessingPS 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

    原图

    这里写图片描述

    效果图

    这里写图片描述

  • 相关阅读:
    Vue
    多线程
    多进程进阶
    CentOS7中安装MySQL
    socket
    回顾
    Hibernate学习一:Hebinate入门以及一些小问题
    struts2学习二:Tomcat的部署目录和访问路径问题
    struts2学习一:hello struts2及struts2环境配置中遇到的问题
    Scanner几个问题与正则简介
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412583.html
Copyright © 2011-2022 走看看