Python 实现PS滤镜的旋涡特效


Posted in Python onDecember 03, 2020

实现效果:

Python 实现PS滤镜的旋涡特效

实现代码

import numpy as np
from skimage import img_as_float
import matplotlib.pyplot as plt
from skimage import io
import math
import numpy.matlib

file_name2='D:/2020121173119242.png'    # 图片路径
img=io.imread(file_name2)

img = img_as_float(img)

row, col, channel = img.shape
img_out = img * 1.0
degree = 70

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

r = np.sqrt(xx_dif * xx_dif + yy_dif * yy_dif)

theta = np.arctan(yy_dif / xx_dif)

mask_1 = xx_dif < 0
theta = theta * (1 - mask_1) + (theta + math.pi) * mask_1

theta = theta + r/degree

x_new = r * np.cos(theta) + center_x
y_new = center_y - r * np.sin(theta) 

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 实现 PS 滤镜的旋涡特效的详细内容,更多关于python ps滤镜漩涡特效的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python使用Socket(Https)Post登录百度的实现代码
May 18 Python
Python和php通信乱码问题解决方法
Apr 15 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
python3爬取淘宝信息代码分析
Feb 10 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
python单例模式实例解析
Aug 28 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
Sep 25 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
python 第三方库paramiko的常用方式
Feb 20 Python
解决Python import .pyd 可能遇到路径的问题
Mar 04 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 #Python
python字符串拼接+和join的区别详解
Dec 03 #Python
python二维图制作的实例代码
Dec 03 #Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 #Python
Python 按比例获取样本数据或执行任务的实现代码
Dec 03 #Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 #Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 #Python
You might like
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
JSON相关知识汇总
2015/07/03 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
简单的js表格操作
2016/09/24 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python mysqldb连接数据库
2009/03/16 Python
浅析Python中的for 循环
2016/06/09 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
Django实现网页分页功能
2019/10/31 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
成教毕业生自我鉴定
2013/10/23 职场文书
英文版销售经理个人求职信
2013/11/20 职场文书
应届生自我鉴定
2013/12/11 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
六查六看自查报告
2014/10/14 职场文书
公司股东出资证明书
2014/11/01 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书