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递归计算N!的方法
May 05 Python
Python实例一个类背后发生了什么
Feb 09 Python
python pandas 如何替换某列的一个值
Jun 09 Python
浅谈Python的list中的选取范围
Nov 12 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
python用win32gui遍历窗口并设置窗口位置的方法
Jul 26 Python
Django stark组件使用及原理详解
Aug 22 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
Python pytesseract验证码识别库用法解析
Jun 29 Python
python 简单的调用有道翻译
Nov 25 Python
详解python3 GUI刷屏器(附源码)
Feb 18 Python
Python学习之时间包使用教程详解
Mar 21 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
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
详解Python中的动态属性和特性
2018/04/07 Python
简述python&amp;pytorch 随机种子的实现
2020/10/07 Python
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
新东网科技Java笔试题
2012/07/13 面试题
个人求职信范例
2014/01/29 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
雷锋的故事观后感
2015/06/10 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
信息技术国培研修日志
2015/11/13 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
Linux中sftp常用命令整理
2022/06/28 Servers