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开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
Python smallseg分词用法实例分析
May 28 Python
Python内存读写操作示例
Jul 18 Python
Python基于百度云文字识别API
Dec 13 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
Python 使用多属性来进行排序
Sep 01 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
Django如何重置migration的几种情景
Feb 24 Python
深入探讨opencv图像矫正算法实战
May 21 Python
浅谈怎么给Python添加类型标注
Jun 08 Python
Python中的变量与常量
Nov 11 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 新手入门
使用sockets:从新闻组中获取文章(一)
2006/10/09 PHP
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php 图片加水印与上传图片加水印php类
2010/05/12 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
与文件上传有关的php配置参数总结
2013/06/14 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
PHP如何利用P3P实现跨域
2013/08/24 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
python数据处理实战(必看篇)
2017/06/11 Python
python pygame模块编写飞机大战
2018/11/20 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
调解员先进事迹材料
2014/02/07 职场文书
小学生环保倡议书
2014/05/15 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js