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(一)运行环境搭建
Nov 29 Python
Python切片索引用法示例
May 15 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
Python requests库用法实例详解
Aug 14 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
python进行TCP端口扫描的实现
Dec 21 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
python Opencv计算图像相似度过程解析
Dec 03 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
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获取网站域名和地址的代码
2008/08/17 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
2018/10/10 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
python连接oracle数据库实例
2014/10/17 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
银行实习人员自我鉴定
2013/09/22 职场文书
校园新闻广播稿
2014/01/10 职场文书
初一生物教学反思
2014/01/18 职场文书
风险评估实施方案
2014/03/09 职场文书
学校春季防火方案
2014/06/08 职场文书
工厂标语大全
2014/10/06 职场文书
综合办公室主任岗位职责
2015/04/01 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
JavaScript原型链详解
2021/11/07 Javascript