python 实现波浪滤镜特效

 更新时间:2020年12月02日 10:51:07   作者:未雨愁眸  
这篇文章主要介绍了python 实现波浪滤镜特效的方法,帮助大家更好的利用python处理图片,感兴趣的朋友可以了解下

本文用 Python 实现 PS 滤镜的波浪特效

import numpy as np
from skimage import img_as_float
import matplotlib.pyplot as plt
from skimage import io
import numpy.matlib
import math
# 图片位置
file_name2='D:/Visual Effects/PS Algorithm/4.jpg'
img=io.imread(file_name2)

img = img_as_float(img)

row, col, channel = img.shape
img_out = img * 1.0
alpha = 70.0
beta = 30.0
degree = 20.0

center_x = (col-1)/2.0
center_y = (row-1)/2.0

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)

xx_dif = x_mask - center_x
yy_dif = center_y - y_mask

x = degree * np.sin(2 * math.pi * yy_dif / alpha) + xx_dif
y = degree * np.cos(2 * math.pi * xx_dif / beta) + yy_dif

x_new = x + center_x
y_new = center_y - y 

int_x = np.floor (x_new)
int_x = int_x.astype(int)
int_y = np.floor (y_new)
int_y = int_y.astype(int)

for ii in range(row):
  for jj in range (col):
    new_xx = int_x [ii, jj]
    new_yy = int_y [ii, jj]

    if x_new [ii, jj] < 0 or x_new [ii, jj] > col -1 :
      continue
    if y_new [ii, jj] < 0 or y_new [ii, jj] > row -1 :
      continue

    img_out[ii, jj, :] = img[new_yy, new_xx, :]


plt.figure (1)
plt.imshow (img)
plt.axis('off')

plt.figure (2)
plt.imshow (img_out)
plt.axis('off')

plt.show()

实现效果

以上就是python 实现波浪滤镜特效的详细内容,更多关于python 波浪滤镜的资料请关注脚本之家其它相关文章!

相关文章

  • python字符串string的内置方法实例详解

    python字符串string的内置方法实例详解

    这篇文章主要介绍了python字符串string的内置方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • Python dataframe如何设置index

    Python dataframe如何设置index

    这篇文章主要介绍了Python dataframe如何设置index,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python实现微信自动回复及批量添加好友功能

    python实现微信自动回复及批量添加好友功能

    这篇文章主要介绍了python实现微信自动回复及python 批量生成微信添加好友截图功能的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • pytorch使用-tensor的基本操作解读

    pytorch使用-tensor的基本操作解读

    这篇文章主要介绍了pytorch使用-tensor的基本操作解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python基于chardet识别字符编码的方法

    python基于chardet识别字符编码的方法

    chardet 是一个流行的 Python 库,用于检测文本文件的字符编码,本文就来介绍一下python基于chardet识别字符编码的方法,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • 怎么使用python生成词云图

    怎么使用python生成词云图

    这篇文章主要给大家介绍了关于怎么使用python生成词云图的相关资料,词云图主要用途是将文本数据中出现频率较高的关键词以可视化的形式展现出来,使人一眼就可以领略文本数据的主要表达意思,需要的朋友可以参考下
    2023-06-06
  • Python 压缩打包文件/文件夹的方法

    Python 压缩打包文件/文件夹的方法

    本文主要介绍了Python 压缩打包文件/文件夹的方法,分两种类型处理,打包文件是需要传入文件的路径,打包文件夹是传入文件夹的路径,感兴趣的可以了解一下
    2023-12-12
  • 教你用python从日期中获取年、月、日和星期等30种信息

    教你用python从日期中获取年、月、日和星期等30种信息

    在日常的工作,经常需要获取时间等相关信息,下面这篇文章主要给大家介绍了关于如何用python从日期中获取年、月、日和星期等30种信息的相关资料,需要的朋友可以参考下
    2022-07-07
  • Python configparser模块配置文件解析与应用探究

    Python configparser模块配置文件解析与应用探究

    在Python中,configparser模块是用于处理配置文件的重要工具,本文将全面探讨configparser模块的使用方法,包括读取、修改、写入配置文件,以及如何在实际项目中应用该模块,结合丰富的示例代码,将深入剖析该模块的功能和灵活性
    2024-01-01
  • Python全栈之学习CSS(2)

    Python全栈之学习CSS(2)

    这篇文章主要为大家介绍了Python全栈之CSS,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01

最新评论