Python 实现PS滤镜中的径向模糊特效

 更新时间:2020年12月03日 11:07:25   作者:未雨愁眸  
这篇文章主要介绍了Python 实现 PS 滤镜中的径向模糊特效,帮助大家更好的利用python处理图片,感兴趣的朋友可以了解下

实现效果

实现代码

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实现计算信息熵的示例代码

    信息熵(information entropy)是信息论的基本概念。描述信息源各可能事件发生的不确定性。本文将通过Python实现信息熵的计算,感兴趣的可以了解一下
    2022-12-12
  • PYcharm 激活方法(推荐)

    PYcharm 激活方法(推荐)

    这篇文章主要介绍了PYcharm 激活方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Python操作word文档插入图片和表格的实例演示

    Python操作word文档插入图片和表格的实例演示

    这篇文章主要给大家介绍了关于Python操作word文档插入图片和表格的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 浅谈python print(xx, flush = True) 全网最清晰的解释

    浅谈python print(xx, flush = True) 全网最清晰的解释

    今天小编就为大家分享一篇浅谈python print(xx, flush = True) 全网最清晰的解释,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python实现异步回调机制代码分享

    python实现异步回调机制代码分享

    本文介绍了python实现异步回调机制的功能,大家参考使用吧
    2014-01-01
  • IntelliJ IDEA安装运行python插件方法

    IntelliJ IDEA安装运行python插件方法

    在本篇文章里我们给大家分享关于IntelliJ IDEA安装运行python插件方法,对此有需求的读者们可以跟着步骤学习下
    2018-12-12
  • Pandas数据清洗和预处理的实现示例

    Pandas数据清洗和预处理的实现示例

    本文主要介绍了Pandas数据清洗和预处理的实现示例,包括处理缺失值、异常值,进行数据转换和规范化,以及处理重复数据等操作,感兴趣的可以了解一下
    2024-01-01
  • Kotlin 中的 apply 函数用法详解

    Kotlin 中的 apply 函数用法详解

    apply 函数是 Kotlin 中一个十分方便的工具,它使得对对象进行初始化和配置变得更加简洁、清晰,通过与 Java 的对比,我们可以看出 Kotlin 在处理类似情况时具有更高的表现力和简洁性,本文给大家介绍Kotlin apply 函数的用法,感兴趣的朋友一起看看吧
    2024-03-03
  • 运行python脚本更改Windows背景

    运行python脚本更改Windows背景

    这篇文章主要介绍了运行python脚本更改Windows背景,使用常用的命令更改桌面背景,以更改ctype中的系统参数,下面来看看具体得更改过程吧
    2022-01-01
  • 如何使用Python实现一个简易的ORM模型

    如何使用Python实现一个简易的ORM模型

    ORM(Object Relational Mapping)是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。本文将介绍如何使用Python实现一个简易的ORM
    2021-05-05

最新评论