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 实现堆排序算法代码
Jun 05 Python
python继承和抽象类的实现方法
Jan 14 Python
初步探究Python程序的执行原理
Apr 11 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
全面了解Nginx, WSGI, Flask之间的关系
Jan 09 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
Django Rest framework权限的详细用法
Jul 25 Python
Python实现Restful API的例子
Aug 31 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
opencv之颜色过滤只留下图片中的红色区域操作
Jun 05 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 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如何得到当前页和上一页的地址?
2006/11/27 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
php join函数应用
2011/05/04 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
JS字符串函数扩展代码
2011/09/13 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
Python爬虫工程师面试问题总结
2018/03/22 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
如何填写个人简历自我评价
2013/12/10 职场文书
工地安全检查制度
2014/02/04 职场文书
村干部培训方案
2014/05/02 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
新农村建设汇报材料
2014/08/15 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书