python 实现波浪滤镜特效


Posted in Python onDecember 02, 2020

本文用 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.imshow (img)
plt.axis('off')

plt.figure (2)
plt.imshow (img_out)
plt.axis('off')

plt.show()

实现效果

python 实现波浪滤镜特效

以上就是python 实现波浪滤镜特效的详细内容,更多关于python 波浪滤镜的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python的dict字典结构操作方法学习笔记
May 07 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
python3设计模式之简单工厂模式
Oct 17 Python
python实现linux下抓包并存库功能
Jul 18 Python
基于python实现聊天室程序
Jul 27 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
Python实现桌面翻译工具【新手必学】
Feb 12 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
Python网络编程之ZeroMQ知识总结
Apr 25 Python
python 如何对logging日志封装
Dec 02 #Python
python3中确保枚举值代码分析
Dec 02 #Python
python使用yaml 管理selenium元素的示例
Dec 01 #Python
python3处理word文档实例分析
Dec 01 #Python
python3中布局背景颜色代码分析
Dec 01 #Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 #Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 #Python
You might like
虫族 Zerg 魔法科技
2020/03/14 星际争霸
基于mysql的bbs设计(二)
2006/10/09 PHP
php标签云的实现代码
2012/10/10 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
浅谈JavaScript中面向对象技术的模拟
2006/09/25 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
Python标准库之循环器(itertools)介绍
2014/11/25 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python入门之井字棋小游戏
2020/03/05 Python
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
Original Penguin美国官网:布拉德皮特、强尼德普喜爱的服装品牌
2016/10/25 全球购物
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
毕业生优秀推荐信
2013/11/26 职场文书
重阳节登山活动方案
2014/02/03 职场文书
班委竞选演讲稿
2014/04/28 职场文书
房地产推广策划方案
2014/05/19 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书