Python实现PS滤镜碎片特效功能示例


Posted in Python onJanuary 24, 2018

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

这里用 Python 实现 PS 滤镜中的碎片特效,这个特效简单来说就是将图像在 上,下,左,右 四个方向做平移,然后将四个方向的平移的图像叠加起来做平均。具体的效果图与说明可参考附录说明

from skimage import img_as_float
import matplotlib.pyplot as plt
from skimage import io
file_name='D:/Visual Effects/PS Algorithm/4.jpg';
img=io.imread(file_name)
img = img_as_float(img)
img_1 = img.copy()
img_2 = img.copy()
img_3 = img.copy()
img_4 = img.copy()
img_out = img.copy()
Offset = 7
row, col, channel = img.shape
img_1[:, 0 : col-1-Offset, :] = img[:, Offset:col-1, :]
img_2[:, Offset:col-1, :] = img[:, 0 : col-1-Offset, :] 
img_3[0:row-1-Offset, :, :] = img[Offset:row-1, :, :]
img_4[Offset:row-1, :, :] = img[0:row-1-Offset, :, :]
img_out = (img_1 + img_2 + img_3 + img_4) / 4.0
plt.figure(1)
plt.imshow(img)
plt.axis('off');
plt.figure(2)
plt.imshow(img_out)
plt.axis('off');

附:PS 滤镜算法原理——碎片效果

%%% Fragment
%%% 对原图做四个方向的平移,然后对平移的结果取平均
%%% 碎片效果
clc;
clear all;
Image=imread('4.jpg');
Image=double(Image)/255;
[row,col,k]=size(Image);
Image1=Image;
Image2=Image;
Image3=Image;
Image4=Image;
Offset=5;
%%% 左移
Image1(:,1:col-Offset,:)=Image(:,1+Offset:col,:);
%%% 右移
Image2(:,1+Offset:col,:)=Image(:,1:col-Offset,:);
%%%% 上移
Image3(1+Offset:row,:,:)=Image(1:row-Offset,:,:);
%%% 下移
Image4(1:row-Offset,:,:)=Image(1+Offset:row,:,:);
Image=(Image1+Image2+Image3+Image4)/4;
figure, imshow(Image);

原图:

Python实现PS滤镜碎片特效功能示例

效果图:

Python实现PS滤镜碎片特效功能示例

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

Python 相关文章推荐
Python实现KNN邻近算法
Jan 28 Python
Centos 升级到python3后pip 无法使用的解决方法
Jun 12 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
Python实现网站表单提交和模板
Jan 15 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
Python 实现自动导入缺失的库
Oct 29 Python
关于Django Models CharField 参数说明
Mar 31 Python
django rest framework serializers序列化实例
May 13 Python
Python xlrd模块导入过程及常用操作
Jun 10 Python
Python二元算术运算常用方法解析
Sep 15 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
python的re正则表达式实例代码
Jan 24 #Python
python实现生命游戏的示例代码(Game of Life)
Jan 24 #Python
Python 获得命令行参数的方法(推荐)
Jan 24 #Python
Python实现的rsa加密算法详解
Jan 24 #Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 #Python
python做量化投资系列之比特币初始配置
Jan 23 #Python
python在非root权限下的安装方法
Jan 23 #Python
You might like
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
jquery 双色表格实现代码
2009/12/08 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
js判断是否是手机页面
2017/03/17 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python中属性和描述符的正确使用
2016/08/23 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
洗手间标语
2014/06/23 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
Python如何加载模型并查看网络
2022/07/15 Python