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中的Numpy入门教程
Apr 26 Python
python框架django基础指南
Sep 08 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
Python3标准库总结
Feb 19 Python
Python supervisor强大的进程管理工具的使用
Apr 24 Python
python调用动态链接库的基本过程详解
Jun 19 Python
win8.1安装Python 2.7版环境图文详解
Jul 01 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
python中return的返回和执行实例
Dec 24 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 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新手上路(十四)
2006/10/09 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
jquery 双色表格实现代码
2009/12/08 Javascript
使用js画图之画切线
2015/01/12 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
JS script脚本中async和defer区别详解
2020/06/24 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
python with (as)语句实例详解
2020/02/04 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
安全员岗位职责
2013/11/11 职场文书
财务会计实习报告体会
2013/12/20 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
海南地接欢迎词
2014/01/14 职场文书
出纳担保书范文
2014/04/02 职场文书
交通安全寄语大全
2014/04/08 职场文书
小学生毕业评语
2014/12/26 职场文书
朋友离别感言
2015/08/04 职场文书
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS