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制作花瓣网美女图片爬虫
Oct 28 Python
发布你的Python模块详解
Sep 15 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
Anaconda2 5.2.0安装使用图文教程
Sep 19 Python
Python实现八皇后问题示例代码
Dec 09 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python numpy数组转置与轴变换
Nov 15 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
python对数组进行排序,并输出排序后对应的索引值方式
Feb 28 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
Python return语句如何实现结果返回调用
Oct 15 Python
python如何控制进程或者线程的个数
Oct 16 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
CodeIgniter多语言实现方法详解
2016/01/20 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
基于Python函数和变量名解析
2019/07/19 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
销售人员工作自我评价
2014/09/21 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
11.9消防日宣传标语
2014/10/08 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers