6.12. 图像处理
大多数图像处理和操作技术可以使用两个库进行有效的处理:Python Imaging Library (PIL) 和 OpenSource Computer Vision (OpenCV)。
下面来简单介绍一下这两个库。
Python 图像库#
Python 图像库 , 全称为 Python Imaging Library,简称 PIL,是 Python 图像操作的核心库之一。遗憾的是,PIL 的开发工作已经停滞,最新版本发行于 2009 年(PIL 1.1.7,译者注)。
幸运的是,有一个积极维护 PIL 分支,名为 Pillow —— 它容易安装,支持全平台运行并且支持 Python 3。
安装 Pillow#
在安装 Pillow 之前,你需要安装 Pillow 的前置需求。针对你所使用平台的相关指导可以参阅 Pillow installation instructions.
安装完成之后,直接执行:
$ pip install Pillow
使用举例#
from PIL import Image, ImageFilter
#读取图像文件
im = Image.open( 'image.jpg' )
#展示图像文件
im.show()
#在图像上应用滤镜
im_sharp = im.filter( ImageFilter.SHARPEN )
#保存已处理图像到新文件
im_sharp.save( 'image_sharpened.jpg', 'JPEG' )
#分离图像波段(band),即RGB模式的红、绿、蓝波段
r,g,b = im_sharp.split()
#查看图像中嵌入的EXIF信息
exif_data = im._getexif()
exif_data
关于 Pillow 库的更多示例请参阅 Pillow 指南.
开源计算机视觉#
OpenSource Computer Vision,通常被称为 OpenCV,是一个比 PIL 更先进的图像操作和处理程序。OpenCV 被多种语言实现并广泛使用。
安装 OpenCV#
在 Python 中,通过 cv2
和 NumPy
两个模块执行使用 OpenCV。在 OpenCV 安装指南中可以指导你如何在自己的项目中进行配置。
NumPy 可以通过 Python Package Index(PyPI)下载安装:
$ pip install numpy
示例#
import cv2
#读取图像
img = cv2.imread('testimg.jpg')
#显示
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
#对图像应用灰阶过滤
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#保存过滤后的新文件
cv2.imwrite('graytest.jpg',gray)
更多关于 OpenCV 的 Python 实现例子尽在 教程集。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。