在这个人人自拍的年代,每个人的智能手机中至少都装了一款美颜相机或者美图软件,而这些软件实现美图功能又主要是靠滤镜来实现的。而这个项目使用 Python 编写一个简单的滤镜程序。

效果截图

先来展示一下滤镜的效果。

这是原图:

原图

使用 nashville 滤镜之后:

使用 nashville 滤镜之后

使用 country 滤镜之后:

使用 country 滤镜之后

涉及知识点:

该项目开发会接触到以下知识点:

使用 docopt 构建命令行解析器

使用 struct 模块解析 ACV 格式文件

Pillow 图像操作

开发步骤:

依赖模块安装

numpy 安装

NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy的前身Numeric最早是由Jim Hugunin与其它协作者共同开发,2005年,Travis Oliphant在Numeric中结合了另一个同性质的程序库Numarray的特色,并加入了其它扩展而开发了NumPy。

NumPy参考CPython(一个使用字节码的解释器),而在这个Python实现解释器上所写的数学算法代码通常远比编译过的相同代码要来得慢。为了解决这个难题,NumPy引入了多维数组以及可以直接有效率地操作多维数组的函数与运算符。因此在NumPy上只要能被表示为针对数组或矩阵运算的算法,其运行效率几乎都可以与编译过的等效C语言代码一样快。

安装步骤如下:

$ sudo python3 -m pip install --upgrade pip

$ sudo pip3 install numpy

Scipy 安装

SciPy是一个开源的Python算法库和数学工具包。SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

Scipy 的安装方法如下:

$ sudo pip3 install scipy

Pillow 安装

Pillow 是 Python 的图像处理库。

安装方法依然方便快捷。

$ sudo pip3 install pillow

docopt 安装

docopt 能自动地根据帮助文档构建出命令行解析器,然后从 Shell 操作命令中解析出参数字段。

使用 pip3 进行安装。

$ sudo pip3 install docopt

编写程序

在开始讲解代码前,我们首先来考虑一下程序的功能需求。

需要构建命令行解析器从命令中解析出文件路径参数

加载图像与滤镜文件

处理图像

保存处理后的图像

需求很简单,构建命令行可以使用 docopt 模块来实现,图像处理的思路在之后会介绍,现在开始实现代码。

关于详细的开发步骤以及代码详解,点击【Python 实现简单滤镜】即可开始查看了~

python相册特效模块_Python 实现简单滤镜相关推荐

  1. python相册特效模块_PIL包中Image模块的convert()函数的具体使用

    将彩色图片转换成黑白图片是自己拿到的第一个小任务.在全文开始之前给自己科普一个公式: RGB到灰度图转换公式:Y' = 0.299 R + 0.587 G + 0.114 B 网上有诸多版本的转换公式 ...

  2. python模拟购物模块_python实现简单购物商城

    本文为大家分享了购物商城小程序,供大家参考,具体内容如下 软件版本:python3.x 功能:实现简单购物商城 1.允许用户选择购买多少件 2.允许多用户登录,下一次登录后,继续按上次的余额继续购买 ...

  3. python实现图片加滤镜_Python 实现简单滤镜

    在这个人人自拍的年代,每个人的智能手机中至少都装了一款美颜相机或者美图软件,而这些软件实现美图功能又主要是靠滤镜来实现的.而这个项目使用 Python 编写一个简单的滤镜程序. 效果截图 先来展示一下 ...

  4. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

  5. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  6. python自动化常用模块_Python自动化 【第五篇】:Python基础-常用模块

    目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 yaml处理 configparser hashlib re ...

  7. python中mysqldb模块_python中MySQLdb模块用法实例

    本文实例讲述了python中MySQLdb模块用法.分享给大家供大家参考.具体用法分析如下: MySQLdb其实有点像php或asp中连接数据库的一个模式了,只是MySQLdb是针对mysql连接了接 ...

  8. python运维模块_Python 运维常用模块

    基础库:sys.os(os.path.os.stat).time.logging.prarmiko.re.random Python运维常用的20个库 1.psutil是一个跨平台库(https:// ...

  9. [转载] python的系统模块_Python操作系统模块

    参考链接: 带有示例的Python中的OS模块 python的系统模块 Python OS module provides easy functions that allow us to intera ...

最新文章

  1. keras merge
  2. 利用startup.m文件设置matlab的Current Folder的默认文件夹
  3. js中的hasOwnProperty和isPrototypeOf方法
  4. KDDockWidgets源码编译及安装
  5. Python 前端的第三方库
  6. python设置excel的格式_python使用xlrd与xlwt对excel的读写和格式设定
  7. python -v乱码提示,#import....等信息的问题解决方式。
  8. TouchID 指纹解锁
  9. 《从零开始学Swift》学习笔记(Day 30)——选择类还是结构体呢?
  10. netmon中解析非1433端口的TDS协议
  11. leetcode刷题日记-喧闹和富有
  12. flask常用内容:
  13. Linux 实现OpenSSL 服务器端客户端通信
  14. cmdline-tools component is missing
  15. JAVA前端修改密码,Java Web版SVN 配置管理工具 2.0 (远道建立仓库,修改密码,设置权限,支持apache等)...
  16. 鲁大师电动车智能化测评报告第十七期:电动车产品的同质化困局
  17. VC MFC 调试信息 DebugView
  18. 互联网新机遇: 移动社交电商将成为下一个风口?
  19. 常用的3D深度相机汇总
  20. 苹果微信更新不了最新版本_微信最新版本可以更改微信号了!还有大量功能更新!...

热门文章

  1. Redis完整体系知识
  2. error adding module to project: null
  3. 手机更换字体导致循环重启
  4. Mac(2) Parallels Desktop 安装 CentOS7
  5. ae 渲染选项_好的MPlayer选项,以提高视频渲染质量
  6. string.h包含的函数
  7. Teebik:2017H1墨西哥畅销榜:超级马里奥入围十强 ARPG市场潜力巨大
  8. 玩一玩游戏之Hello World
  9. Tableau制作瀑布图太简单了
  10. 阿里云服务器一年价格是多少?阿里云服务器一般多少钱一年?