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中使用 Selenium 实现网页截图实例
Jul 18 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
python实现贪吃蛇游戏
Mar 21 Python
Python实现合并excel表格的方法分析
Apr 13 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
详解Python中的分支和循环结构
Feb 11 Python
python def 定义函数,调用函数方式
Jun 02 Python
python 实现音频叠加的示例
Oct 29 Python
python 遍历磁盘目录的三种方法
Apr 02 Python
Python中的tkinter库简单案例详解
Jan 22 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
实用函数3
2007/11/08 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
php生成随机数的三种方法
2014/09/10 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
DOM 高级编程
2015/05/06 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
总结python爬虫抓站的实用技巧
2016/08/09 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
会展中心部门工作职责
2013/11/27 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
2015年双拥工作总结
2015/04/08 职场文书
2016新年晚会开场白
2015/12/03 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js