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函数可变参数定义及其参数传递方式实例详解
May 25 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
深入探究Django中的Session与Cookie
Jul 30 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
Python装饰器用法实例分析
Jan 14 Python
Django文件存储 默认存储系统解析
Aug 02 Python
python数据处理之如何选取csv文件中某几行的数据
Sep 02 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
Jun 10 Python
Python实现ElGamal加密算法的示例代码
Jun 19 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 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下载远程文件类(支持断点续传)
2008/11/14 PHP
javascript 框架小结 个人工作经验
2009/06/13 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
Python六大开源框架对比
2015/10/19 Python
玩转python爬虫之URLError异常处理
2016/02/17 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
简单了解django文件下载方式
2020/02/10 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
公司培训心得体会
2014/01/03 职场文书
中学生自我鉴定
2014/02/04 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
安全学习心得体会范文
2016/01/18 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers