Python 实现PS滤镜中的径向模糊特效


Posted in Python onDecember 03, 2020

实现效果

Python 实现PS滤镜中的径向模糊特效

实现代码

from skimage import img_as_float
import matplotlib.pyplot as plt
from skimage import io
import numpy as np
import numpy.matlib

file_name='D:/2020121173119242.png'  # 图片路径
img=io.imread(file_name)

img = img_as_float(img)

img_out = img.copy()

row, col, channel = img.shape

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)

center_y = (row -1) / 2.0
center_x = (col -1) / 2.0

R = np.sqrt((x_mask - center_x) **2 + (y_mask - center_y) ** 2)

angle = np.arctan2(y_mask - center_y , x_mask - center_x)

Num = 20
arr = np.arange(Num)

for i in range (row):
 for j in range (col):

  R_arr = R[i, j] - arr 
  R_arr[R_arr < 0] = 0

  new_x = R_arr * np.cos(angle[i,j]) + center_x
  new_y = R_arr * np.sin(angle[i,j]) + center_y

  int_x = new_x.astype(int)
  int_y = new_y.astype(int)

  int_x[int_x > col-1] = col - 1
  int_x[int_x < 0] = 0
  int_y[int_y < 0] = 0
  int_y[int_y > row -1] = row -1

  img_out[i,j,0] = img[int_y, int_x, 0].sum()/Num
  img_out[i,j,1] = img[int_y, int_x, 1].sum()/Num
  img_out[i,j,2] = img[int_y, int_x, 2].sum()/Num


plt.figure(1)
plt.imshow(img)
plt.axis('off')

plt.figure(2)
plt.imshow(img_out)
plt.axis('off')

plt.show()

以上就是Python 实现 PS 滤镜中的径向模糊特效的详细内容,更多关于python 图片模糊滤镜的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python 查看list中是否含有某元素的方法
Jun 27 Python
Python文件读写保存操作的示例代码
Sep 14 Python
对python中Librosa的mfcc步骤详解
Jan 09 Python
python中的colorlog库使用详解
Jul 05 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
mac在matplotlib中显示中文的操作方法
Mar 06 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
Python3 pywin32模块安装的详细步骤
May 26 Python
Python中的整除和取模实例
Jun 03 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
windows支持哪个版本的python
Jul 03 Python
python 实现一个图形界面的汇率计算器
Nov 09 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
python 使用cycle构造无限循环迭代器
Dec 02 #Python
You might like
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
Javascript 跨域访问解决方案
2009/02/14 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
Python实现嵌套列表去重方法示例
2017/12/28 Python
python读取文本中的坐标方法
2018/10/14 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
护理助产毕业生的求职信
2014/03/02 职场文书
超市促销活动总结
2014/07/01 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
golang 实现时间戳和时间的转化
2021/05/07 Golang
python迷宫问题深度优先遍历实例
2021/06/20 Python
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js