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之有容乃大的list(4)
Sep 28 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
Python实现HTTP协议下的文件下载方法总结
Apr 20 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
使用 Python 清理收藏夹里已失效的网站
Dec 03 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 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一些有意思的小区别
2006/12/06 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
js console.log打印对象时属性缺失的解决方法
2019/05/23 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
布同 统计英文单词的个数的python代码
2011/03/13 Python
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
python从入门到精通(DAY 2)
2015/12/20 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
Django框架模板用法入门教程
2019/11/04 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
家庭贫困证明
2014/09/23 职场文书
党员批评与自我批评
2014/10/15 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
2016年父亲节寄语
2015/12/04 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书