Python实现PS滤镜功能之波浪特效示例


Posted in Python onJanuary 26, 2018

本文实例讲述了Python实现PS滤镜功能之波浪特效。分享给大家供大家参考,具体如下:

这里用 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.title('3water.com')
plt.imshow (img)
plt.axis('off')
plt.figure (2)
plt.title('3water.com')
plt.imshow (img_out)
plt.axis('off')
plt.show()

附录:PS 滤镜——波浪 wave

%%% Wave
%%% 波浪效果
clc;
clear all;
close all;
addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');
I=imread('4.jpg');
Image=double(I);
% Image=0.2989 * I(:,:,1) + 0.5870 * I(:,:,2) + 0.1140 * I(:,:,3);
[row, col,channel]=size(Image);
R=floor(max(row, col)/2);
Image_new=Image;
Degree=30;  % 控制扭曲的程度
Center_X=(col+1)/2;
Center_Y=(row+1)/2;
for i=1:row
  for j=1:col
    x0=j-Center_X;
    y0=Center_Y-i;
    x=Degree*sin(2*pi*y0/128)+x0;
    y=Degree*cos(2*pi*x0/128)+y0;
    x=x+col/2;
    y=row/2-y;
    if(x>1 && x<col && y<row && y>1)
      x1=floor(x);
      y1=floor(y);
      p=x-x1;
      q=y-y1;
       Image_new(i,j,:)=(1-p)*(1-q)*Image(y1,x1,:)+p*(1-q)*Image(y1,x1+1,:)...
              +q*(1-p)*Image(y1+1,x1,:)+p*q*Image(y1+1,x1+1,:);
    end
  end
end
figure, imshow(Image_new/255);

本例Python运行效果:

原图

Python实现PS滤镜功能之波浪特效示例

效果图

Python实现PS滤镜功能之波浪特效示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python操作mysql中文显示乱码的解决方法
Oct 11 Python
Python实现简单登录验证
Apr 13 Python
python根据unicode判断语言类型实例代码
Jan 17 Python
Python实现的txt文件去重功能示例
Jul 07 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
Jul 01 Python
Python笔试面试题小结
Sep 07 Python
Python 继承,重写,super()调用父类方法操作示例
Sep 29 Python
Python基础之函数基本用法与进阶详解
Jan 02 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
Jan 10 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 #Python
python如何重载模块实例解析
Jan 25 #Python
Python进程间通信Queue实例解析
Jan 25 #Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 #Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 #Python
python画出三角形外接圆和内切圆的方法
Jan 25 #Python
Python实现批量压缩图片
Jan 25 #Python
You might like
php获取某个目录大小的代码
2008/09/10 PHP
php的curl封装类用法实例
2014/11/07 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
jqgrid 简单学习笔记
2011/05/03 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
python paramiko模块学习分享
2017/08/23 Python
python enumerate函数的使用方法总结
2017/11/15 Python
python3.6实现学生信息管理系统
2019/02/21 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
Python使用re模块验证危险字符
2020/05/21 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
详解Python中的文件操作
2021/01/14 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
乡镇爱国卫生月活动总结
2014/06/25 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
公积金接收函格式
2015/01/30 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
八月一日观后感
2015/06/10 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL