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访问类中docstring注释的实现方法
May 04 Python
Python实现简单的代理服务器
Jul 25 Python
Python 模板引擎的注入问题分析
Jan 01 Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
Python爬虫将爬取的图片写入world文档的方法
Nov 07 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
python tkinter组件摆放方式详解
Sep 16 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
详解python with 上下文管理器
Sep 02 Python
python垃圾回收机制原理分析
Apr 13 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 进程锁定问题分析研究
2009/11/24 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
php链表用法实例分析
2015/07/09 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
教师节促销活动方案
2014/02/14 职场文书
财务主管岗位职责
2014/02/28 职场文书
房屋租赁协议书
2014/04/10 职场文书
国贸专业求职信
2014/06/28 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
2014年人大工作总结
2014/12/10 职场文书
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android
详解Redis的三种常用的缓存读写策略步骤
2022/05/06 Redis