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使用open打开文件中文乱码的问题
Dec 29 Python
opencv python 图像去噪的实现方法
Aug 31 Python
简单谈谈python基本数据类型
Sep 26 Python
Pytorch 实现数据集自定义读取
Jan 18 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
python 解决tqdm模块不能单行显示的问题
Feb 19 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
python 窃取摄像头照片的实现示例
Jan 08 Python
对PyTorch中inplace字段的全面理解
May 22 Python
python之np.argmax()及对axis=0或者1的理解
Jun 02 Python
你需要掌握的20个Python常用技巧
Feb 28 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
PHP调用三种数据库的方法(3)
2006/10/09 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
如何判断php数组的维度
2013/06/10 PHP
php引用传值实例详解学习
2013/11/06 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
php批量修改表结构实例
2017/05/24 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
对python sklearn one-hot编码详解
2018/07/10 Python
python hook监听事件详解
2018/10/25 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
幼儿园教研活动方案
2014/01/19 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
求职简历自我评价范例
2014/03/12 职场文书
房产代理公证处委托书
2014/04/04 职场文书
小学生植树节活动总结
2014/07/04 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书