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 21 Python
python图片验证码生成代码
Jul 02 Python
python3+PyQt5实现文档打印功能
Apr 24 Python
用Python将一个列表分割成小列表的实例讲解
Jul 02 Python
解决PySide+Python子线程更新UI线程的问题
Jan 11 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
opencv3/C++实现视频读取、视频写入
Dec 11 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
基于python实现数组格式参数加密计算
Apr 21 Python
Python中内建模块collections如何使用
May 27 Python
pytorch查看网络参数显存占用量等操作
May 12 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中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
解决uWSGI的编码问题详解
2017/03/24 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
python3使用GUI统计代码量
2019/09/18 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
python实现登录与注册系统
2020/11/30 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
外贸业务员求职自荐信分享
2013/09/21 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
2014年质量工作总结
2014/11/22 职场文书
检讨书范文500字
2015/01/28 职场文书