图像处理

优质
小牛编辑
169浏览
2023-12-01

大多数图像处理和操作技术可以使用两个库进行有效的处理: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 中,通过cv2NumPy两个模块执行使用 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 实现例子尽在 教程集