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解析树及树的遍历
Feb 03 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
python 创建弹出式菜单的实现代码
Jul 11 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
python监控键盘输入实例代码
Feb 09 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
详解Python_shutil模块
Mar 15 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 Python
django框架forms组件用法实例详解
Dec 10 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
Python接口测试环境搭建过程详解
Jun 29 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
MSN消息提示类
2006/09/05 Javascript
javascript 获取网页参数系统
2008/07/19 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
pandas值替换方法
2018/07/10 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
Python读取yaml文件的详细教程
2020/07/21 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
学生学习总结的自我评价
2013/10/22 职场文书
区域销售经理岗位职责
2013/12/10 职场文书
保护野生动物倡议书
2014/05/16 职场文书
统计员岗位职责
2015/02/11 职场文书
导游词之襄阳古城
2019/09/27 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
sql server 累计求和实现代码
2022/02/28 SQL Server
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers