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 参数列表中的self 显式不等于冗余
Dec 01 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
django之自定义软删除Model的方法
Aug 14 Python
django实现HttpResponse返回json数据为中文
Mar 27 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
Python3 类型标注支持操作
Jun 02 Python
Python中with上下文管理协议的作用及用法
Mar 18 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
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
Python显示进度条的方法
2014/09/20 Python
Python3中的2to3转换工具使用示例
2015/06/12 Python
python实现FTP服务器服务的方法
2017/04/11 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
预备党员思想汇报
2014/01/08 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
售后服务承诺书模板
2014/05/21 职场文书
党委班子对照检查材料
2014/08/19 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers