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 fabric实现远程操作和部署示例
Mar 25 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
Jun 21 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
Pycharm更换python解释器的方法
Oct 29 Python
Python实现插入排序和选择排序的方法
May 12 Python
Python Collatz序列实现过程解析
Oct 12 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
Python importlib动态导入模块实现代码
Apr 16 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
学习Python需要哪些工具
Sep 04 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 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后台的Android新闻浏览客户端
2016/05/23 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
iview实现图片上传功能
2020/06/29 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
从零学Python之入门(五)缩进和选择
2014/05/27 Python
低版本中Python除法运算小技巧
2015/04/05 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
python爬虫实现获取下一页代码
2020/03/13 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
工商企业管理应届生求职信
2013/11/03 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
旗帜观后感
2015/06/08 职场文书
团委副书记工作总结
2015/08/14 职场文书
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电