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提取内容关键词的方法
Mar 16 Python
详解Python中heapq模块的用法
Jun 28 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
Python生成短uuid的方法实例详解
May 29 Python
python实现多人聊天室
Mar 31 Python
python标记语句块使用方法总结
Aug 05 Python
pyqt5、qtdesigner安装和环境设置教程
Sep 25 Python
python读文件的步骤
Oct 08 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
python实现打砖块游戏
Feb 25 Python
keras中的loss、optimizer、metrics用法
Jun 15 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 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比你想象的好得多
2014/11/27 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
vue组件watch属性实例讲解
2017/11/07 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
35个Python编程小技巧
2014/04/01 Python
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
python实现三壶谜题的示例详解
2020/11/02 Python
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
本科毕业生的求职信范文
2013/11/20 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
小班上学期个人总结
2015/02/12 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
Python开发五子棋小游戏
2022/04/28 Python