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中使用HTMLParser解析html实例
Feb 08 Python
python中Flask框架简单入门实例
Mar 21 Python
对numpy中array和asarray的区别详解
Apr 17 Python
python numpy 显示图像阵列的实例
Jul 02 Python
Python高级特性切片(Slice)操作详解
Sep 27 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python文件读写常见用法总结
Feb 22 Python
机器学习实战之knn算法pandas
Jun 22 Python
Python爬虫中Selenium实现文件上传
Dec 04 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
Python中lru_cache的使用和实现详解
Jan 25 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/06/14 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
Python实现LRU算法的2种方法
2015/06/24 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python读写csv文件方法详细总结
2019/07/05 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
2015年见习期工作总结
2014/12/12 职场文书
2015年采购工作总结
2015/04/10 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js