在这个人人自拍的年代,每个人的智能手机中至少都装了一款美颜相机或者美图软件,而这些软件实现美图功能又主要是靠滤镜来实现的。而这个项目使用 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给图片加水印(非常简单)

    今天来分享可以给图片添加水印的方法,十分的简单实用,大家在看了之后也可以私底下去自己试试. # encoding=utf8''' Python给图片加水印(非常简单) '''# 导入包 from wa ...

  2. python tcp协议加代理_python实现简单的TCP代理服务器

    本文实例讲述了python实现简单的TCP代理服务器的方法,分享给大家供大家参考. 具体实现代码如下: # -*- coding: utf-8 -*- ''' filename:rtcp.py @de ...

  3. 不会吧,不会吧,不会还有人不知道Python给图片加水印超级简单哦

    不会吧,不会吧,不会还有人不知道❤️Python给图片加水印❤️超级简单哦 文章目录 不会吧,不会吧,不会还有人不知道❤️Python给图片加水印❤️超级简单哦 介绍 安装模块 进行添加水印的操作 结 ...

  4. Universal-Image-Loader(UIL)图片加载框架使用简单介绍

    这个也是最近项目中使用到的第三方图片加载框架,在这里也自己总结一下,简单的介绍一些使用的方式. UIL图片加载框架特点 简介: 项目地址:https://github.com/nostra13/And ...

  5. python相册特效模块_Python 实现简单滤镜

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

  6. python给图片加滤镜的方程_纯Python综合图像处理小工具(4)自定义像素级处理(剪纸滤镜)...

    上一节介绍了python PIL库自带的10种滤镜处理,现成的库函数虽然用起来方便,但是对于图像处理的各种实际需求,还需要开发者开发自定义的滤镜算法.本文将给大家介绍如何使用PIL对图像进行自定义的像 ...

  7. python添加图片输出框_python图像处理:怎么给图片加框?

    有没有想过可以用python做什么?小编最近就遇到了使用python解决自己的生活问题,给自己的图片加了个边框,感兴趣的一起来看下吧~ Python是一门脚本语言,有着大量的第三方库,下面就利用pil ...

  8. python将图片转换为字符_python如何将图片转换为字符图片

    简介 一个简单的python程序,将图片转换为字符图片. (为了简便,很多参数写死了,自己看着改吧. (←∀←)) 正文 原图(侵删) 结果图 源码 [更多细节]-->戳这里 #-*- codi ...

  9. 用Python给图片加水印

    版权相当重要,对于某张图片,可能是你精心制作的思维导图,或者你精心设计的某个logo.你可能花费好多时间来弄,最后却被别人直接搬运过去使用,好气哦! 基于此,本文我就带着大家学学如何给你的图片加水印, ...

最新文章

  1. display:inline-block的妙用!!列表布局!!
  2. RocketMQ生产者流程篇
  3. CSS3中的 Background linear gradient()用法
  4. rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘
  5. Django——WEB三层架构与MVC
  6. 常用的HTTP状态码
  7. HALCON标定板制作、标准文件输出方法、算子讲解
  8. 老码农的人生需要多线程的去生活
  9. python 表格查询_python单表查询
  10. 使用d3.v3插件绘制出svg图
  11. springBoot项目启动去掉多余的启动日志
  12. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_2_练习_使用递归计算1-n之间的和...
  13. c语言char数字转int补位,如何补位??
  14. linux中双方同步unison服务器搭建
  15. Android 10 添加第三方输入法为系统默认输入法
  16. 幕后产品_版本控制:幕后
  17. matlab 表示希腊字母yita,常用希腊字母读法
  18. Python3.7 下安装pyqt5
  19. 加勒比海盗1英文剧本
  20. 前端工程师JS基础知识部分(下)

热门文章

  1. g2 坐标轴从0开始_简皇发条带领TL终结连败,G2老板:我们总是会输给外卡队
  2. java字符串format_JAVA字符串格式化-String.format()的使用
  3. 【C#】设置控制文本框(TextBox)只能输入正数,负数,小数
  4. 高压FOC电机驱动方案,精准控制实现超静音
  5. Unity3D之DrawCalls、Batches和SetPassCalls的关系
  6. 基于springboot的微信公众号管理系统(支持多公众号接入)
  7. 人工智能--Keras网络构建
  8. Java面试笔记的天花板,禁止无效学习浪费脑细胞
  9. LTE-A载波聚合技术(1)---载波聚合的技术特征、分类、仿真场景
  10. 史上最全的 Spring 面试题和答案