Python实现PS滤镜功能之波浪特效示例


Posted in Python onJanuary 26, 2018

本文实例讲述了Python实现PS滤镜功能之波浪特效。分享给大家供大家参考,具体如下:

这里用 Python 实现 PS 滤镜的波浪特效,具体效果可以参考附录说明

import numpy as np
from skimage import img_as_float
import matplotlib.pyplot as plt
from skimage import io
import numpy.matlib
import math
file_name2='D:/Visual Effects/PS Algorithm/4.jpg'
img=io.imread(file_name2)
img = img_as_float(img)
row, col, channel = img.shape
img_out = img * 1.0
alpha = 70.0
beta = 30.0
degree = 20.0
center_x = (col-1)/2.0
center_y = (row-1)/2.0
xx = np.arange(col)
yy = np.arange(row)
x_mask = numpy.matlib.repmat (xx, row, 1)
y_mask = numpy.matlib.repmat (yy, col, 1)
y_mask = np.transpose(y_mask)
xx_dif = x_mask - center_x
yy_dif = center_y - y_mask
x = degree * np.sin(2 * math.pi * yy_dif / alpha) + xx_dif
y = degree * np.cos(2 * math.pi * xx_dif / beta) + yy_dif
x_new = x + center_x
y_new = center_y - y 
int_x = np.floor (x_new)
int_x = int_x.astype(int)
int_y = np.floor (y_new)
int_y = int_y.astype(int)
for ii in range(row):
  for jj in range (col):
    new_xx = int_x [ii, jj]
    new_yy = int_y [ii, jj]
    if x_new [ii, jj] < 0 or x_new [ii, jj] > col -1 :
      continue
    if y_new [ii, jj] < 0 or y_new [ii, jj] > row -1 :
      continue
    img_out[ii, jj, :] = img[new_yy, new_xx, :]
plt.figure (1)
plt.title('3water.com')
plt.imshow (img)
plt.axis('off')
plt.figure (2)
plt.title('3water.com')
plt.imshow (img_out)
plt.axis('off')
plt.show()

附录:PS 滤镜——波浪 wave

%%% Wave
%%% 波浪效果
clc;
clear all;
close all;
addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');
I=imread('4.jpg');
Image=double(I);
% Image=0.2989 * I(:,:,1) + 0.5870 * I(:,:,2) + 0.1140 * I(:,:,3);
[row, col,channel]=size(Image);
R=floor(max(row, col)/2);
Image_new=Image;
Degree=30;  % 控制扭曲的程度
Center_X=(col+1)/2;
Center_Y=(row+1)/2;
for i=1:row
  for j=1:col
    x0=j-Center_X;
    y0=Center_Y-i;
    x=Degree*sin(2*pi*y0/128)+x0;
    y=Degree*cos(2*pi*x0/128)+y0;
    x=x+col/2;
    y=row/2-y;
    if(x>1 && x<col && y<row && y>1)
      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
end
figure, imshow(Image_new/255);

本例Python运行效果:

原图

Python实现PS滤镜功能之波浪特效示例

效果图

Python实现PS滤镜功能之波浪特效示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python字符串转换成浮点数函数分享
Jul 24 Python
利用Python爬取可用的代理IP
Aug 18 Python
Python实现定时任务
Feb 08 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
python pycurl验证basic和digest认证的方法
May 02 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
Jan 10 Python
利用Python发送邮件或发带附件的邮件
Nov 12 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
python基于pexpect库自动获取日志信息
Feb 01 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 #Python
python如何重载模块实例解析
Jan 25 #Python
Python进程间通信Queue实例解析
Jan 25 #Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 #Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 #Python
python画出三角形外接圆和内切圆的方法
Jan 25 #Python
Python实现批量压缩图片
Jan 25 #Python
You might like
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
jQuery遍历Form示例代码
2013/09/03 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
Python-for循环的内部机制
2020/06/12 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
Linux文件操作命令都有哪些
2016/07/23 面试题
类的返射机制中的包及核心类
2016/09/12 面试题
实习生单位鉴定意见
2013/12/04 职场文书
正规的求职信范文分享
2013/12/11 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
房租涨价通知
2015/04/23 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
python中mongodb包操作数据库
2022/04/19 Python