文章标签 ‘滤镜’

用PIL实现滤镜

本来想写一个系列,已经有了第一篇《用PIL实现滤镜(一)——素描、铅笔画效果》。最后关于各种滤镜的计算方法,分系列写实在是乏善可陈。

目前,由于Python语言限制,有些算法的效率十分低下(比如油画——oil painting)。在完成全部预计的效果之后,会再考虑优化效率。其实做这个东西完全是学习之用,估计也没有什么太大的实用价值:)

现在,代码已经托管在bitbucket上,如果你感兴趣,可以查看wiki。要获得代码,运行命令:

$ hg clone http://bitbucket.org/chineking/pil-filter-extension

代码中都有详细的注释,具体细节请参考代码。

用PIL实现滤镜(一)——素描、铅笔画效果

在计算机图形学发展史中,真实感绘制一直是主旋律。不过从20实际90年代中期开始,非真实感图像绘制(Non-Photorealistic Rendering,NPR)逐渐成为一个研究热点。说白了,真实感绘制目标是像照片般真实地再现客观世界,而非真实感图像绘制专注于图形个性化和艺术化的表达,它主要用来表现图形的艺术特质,以及模拟艺术作品(甚至包括作品中的缺陷)。

在介绍完非真实感图像绘制之后,我们再来提及一下PIL——Python Imaging Library(官方网址)。相信使用python的朋友们都不会陌生,因为在web应用中我们常常用它来生成缩略图。从名字也可以看出,PIL主要用来处理图片,它支持多种图片格式,并提供强大的图片和图像处理能力。详细的关于PIL的内容大家可以参阅手册

这个系列,我们就主要使用PIL来进行滤镜方面的处理,包括素描、铅笔画、油画等等滤镜效果的实现。在以后我会把代码托管出来。

PIL已经内置一些滤镜效果,详细见文档这篇文章

关于作者

残阳似血(@秦续业),程序猿一枚,把梦想揣进口袋的挨踢工作者。现加入阿里云,研究僧毕业于上海交通大学软件学院ADC实验室。熟悉分布式数据分析(DataFrame并行化框架)、基于图模型的分布式数据库和并行计算、Dpark/Spark以及Python web开发(Django、tornado)等。

博客分类

点击排行

标签云

扫描访问

主题

残阳似血的微博