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 17 Python
python 动态加载的实现方法
Dec 22 Python
Python实现ping指定IP的示例
Jun 04 Python
python实现雨滴下落到地面效果
Jun 21 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
django创建超级用户时指定添加其它字段方式
May 14 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
Python 调用 ES、Solr、Phoenix的示例代码
Nov 23 Python
python 模块导入问题汇总
Feb 01 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
解析htaccess伪静态的规则
2013/06/18 PHP
thinkphp缓存技术详解
2014/12/09 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
Python中type的构造函数参数含义说明
2015/06/21 Python
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
django使用LDAP验证的方法示例
2018/12/10 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
行政主管职责范本
2014/03/07 职场文书
党员干部公开承诺书
2014/03/26 职场文书
活动总结怎么写啊
2014/05/07 职场文书
全国文明单位申报材料
2014/05/31 职场文书
财务工作检讨书
2014/10/29 职场文书
2014年学生管理工作总结
2014/12/20 职场文书