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数据结构链表之单向链表(实例讲解)
Jul 25 Python
详解python 拆包可迭代数据如tuple, list
Dec 29 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
python实现简单五子棋游戏
Jun 18 Python
利用python求积分的实例
Jul 03 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
Python判断变量是否是None写法代码实例
Oct 09 Python
用Python进行栅格数据的分区统计和批量提取
May 27 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
php数据库备份还原类分享
2014/03/20 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
js面向对象的写法
2016/02/19 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
python中的多线程实例教程
2014/08/27 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
Python通过socketserver处理多个链接
2020/03/18 Python
parser.add_argument中的action使用
2020/04/20 Python
Python数据可视化图实现过程详解
2020/06/12 Python
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
学术会议欢迎词
2014/01/09 职场文书
高级销售求职信
2014/02/21 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
电力安全事故反思
2014/04/27 职场文书
关于爱国的标语
2014/06/24 职场文书
初三语文教学计划
2015/01/22 职场文书
地道战观后感
2015/06/04 职场文书
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript