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二叉树遍历的实现方法
Nov 21 Python
Python脚本实现集群检测和管理功能
Mar 06 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
Python单元测试实例详解
May 25 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
Jun 14 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
pygame实现贪吃蛇游戏(上)
Oct 29 Python
python列表推导式入门学习解析
Dec 02 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
Python数据处理的三个实用技巧分享
Apr 01 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
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
php多线程并发实现方法
2016/09/30 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
jquery中键盘事件小结
2016/02/24 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
python简单线程和协程学习心得(分享)
2017/06/14 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
python 整数越界问题详解
2019/06/27 Python
Python中print函数简单使用总结
2019/08/05 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python定位xpath 节点位置的方法
2019/08/27 Python
为什么是 Python -m
2020/06/19 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
如何手工释放资源
2013/12/15 面试题
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
科级干部考察材料
2014/02/15 职场文书
开学季活动策划方案
2014/02/28 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
学习雷锋倡议书
2014/04/15 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
js不常见操作运算符总结
2021/11/20 Javascript