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 相关文章推荐
简介Django框架中可使用的各类缓存
Jul 23 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
pandas dataframe添加表格框线输出的方法
Feb 08 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 Python
如何解决安装python3.6.1失败
Jul 01 Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 24 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初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
基于php无限分类的深入理解
2013/06/02 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
Python高效编程技巧
2013/01/07 Python
详解Python爬虫的基本写法
2016/01/08 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
党的群众路线教育学习材料
2014/05/12 职场文书
技能比武方案
2014/05/21 职场文书
竞聘自述材料
2014/08/25 职场文书
四风查摆剖析材料
2014/10/10 职场文书
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技