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 相关文章推荐
深入理解Django的中间件middleware
Mar 14 Python
Python实现的求解最小公倍数算法示例
May 03 Python
解决Shell执行python文件,传参空格引起的问题
Oct 30 Python
python 实现倒排索引的方法
Dec 25 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
TensorFlow梯度求解tf.gradients实例
Feb 04 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
简单了解Python多态与属性运行原理
Jun 15 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
python 实现mysql自动增删分区的方法
Apr 01 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生成静态HTML文档实现代码
2016/06/23 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
浅析js绑定事件的常用方法
2016/05/15 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
Python类的动态修改的实例方法
2017/03/24 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
用Python配平化学方程式的方法
2019/07/20 Python
python能自学吗
2020/06/18 Python
python Pexpect模块的使用
2020/12/25 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
介绍一下Ruby的特点
2013/01/20 面试题
个人能力自我鉴赏
2014/01/25 职场文书
会议主持人开场白台词
2015/05/28 职场文书
贫困生证明范文
2015/06/16 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
Django migrate报错的解决方案
2021/05/20 Python