FEATURED · 精选文章

python-guide 图像处理实战指南:Pillow 与 OpenCV 双库上手

发布时间 / 2026/9/19 7:43:05
来源 / 创域科博编辑部
栏目 / 资讯中心
python-guide 图像处理实战指南:Pillow 与 OpenCV 双库上手 python-guide 图像处理实战指南Pillow 与 OpenCV 双库上手【免费下载链接】python-guidePython best practices guidebook, written for humans.项目地址: https://gitcode.com/gh_mirrors/py/python-guide本篇指南源自 python-guideThe Hitchhikers Guide to Python仓库中的图像处理场景章节面向需要在 Python 中完成图片读取、显示、滤镜、通道拆分、EXIF 读取与灰度转换等日常任务的开发者。读完本文你将掌握 PillowPIL 的活跃继任者与 OpenCV 两套主流图像处理库的安装方式、核心 API 用法以及如何根据任务复杂度选择最合适的库。为什么 Python 里图像处理只需要两个库在 Python 生态中绝大多数图像处理与图像编辑需求都可以用两个库高效完成Python Imaging LibraryPIL和Open Source Computer VisionOpenCV开源计算机视觉库。前者侧重日常图像编辑与格式转换后者则是更进阶的图像分析与计算机视觉工具。python-guide 将这份选型建议收录在 场景指南Scenario Guide for Python Applications中作为scenarios/imaging一章向开发者推荐。下文分别介绍两个库的背景、安装步骤与可直接运行的代码示例。Python Imaging LibraryPIL与 PillowPIL 是 Python 图像处理的核心库之一但它的官方开发早已停滞——最后一个正式版本发布于 2009 年。幸运的是社区孵化了一个持续活跃的复刻分支Pillow它安装更简单、支持所有主流操作系统并且完整支持 Python 3。因此新项目应当直接使用 Pillow而不是原版 PIL。安装 Pillow安装 Pillow 之前需要先满足其平台相关的底层依赖例如不同系统上的 JPEG、PNG、zlib 等图像编解码库请参照 Pillow 官方安装文档中针对你所在平台Windows / macOS / Linux的说明完成前置准备。前置依赖就绪后安装本身只有一条命令$ pip install PillowPillow 与 PIL 共用PIL这一模块名因此安装 Pillow 后代码中依然通过from PIL import ...导入。入门示例读取、显示、滤镜、通道拆分与 EXIF以下示例完整覆盖了日常图像编辑的高频操作打开图片、显示图片、应用滤镜、保存新文件、拆分 RGB 通道以及读取 EXIF 元数据from PIL import Image, ImageFilter # 读取图像 im Image.open(image.jpg) # 显示图像会调用系统默认图片查看器 im.show() # 对图像应用锐化滤镜返回一张新的 Image 对象 im_sharp im.filter(ImageFilter.SHARPEN) # 将处理后的图像保存为 JPEG 格式的新文件 im_sharp.save(image_sharpened.jpg, JPEG) # 将图像拆分为各自的颜色通道RGB 模式下即红、绿、蓝三个单通道 r, g, b im_sharp.split() # 查看图像中内嵌的 EXIF 数据相机型号、光圈、快门、拍摄时间等 exif_data im._getexif() exif_data逐行解读关键 APIImage.open(path)打开图片文件返回Image对象。Pillow 会根据文件内容自动识别格式无需显式指定。im.show()调用系统默认图片查看器展示图片适合交互式调试。im.filter(ImageFilter.SHARPEN)Pillow 内置多种滤镜如BLUR、CONTOUR、EMBOSS、SHARPEN、SMOOTH等处理返回新对象原图不被修改。im_sharp.save(image_sharpened.jpg, JPEG)按指定格式写出文件第二个参数为格式名如JPEG、PNG、GIF也可省略以由扩展名推断。im_sharp.split()将多通道图像拆成独立的单通道图像RGB 图像得到 (r, g, b) 三元组。im._getexif()返回内嵌 EXIF 元数据字典若图片无 EXIF 则返回None。更多 Pillow 用法可查阅官方 Pillow 教程Handbook其中包含裁剪、旋转、缩放、缩略图、模式转换如convert(L)转灰度等进阶操作。Open Source Computer VisionOpenCVOpen Source Computer Vision通称OpenCV是比 PIL 更进阶的图像处理与计算机视觉软件底层以 C/C 实现、性能出色已被多种编程语言绑定并广泛应用于学术界与工业界。它适合人脸检测、物体识别、图像特征提取、视频分析等计算密集型任务。安装cv2 与 NumPy在 Python 中使用 OpenCV实际上用到的是cv2与NumPy两个模块cv2是 OpenCV 的 Python 绑定而NumPy提供底层数组结构——OpenCV 的图像在 Python 中就是一个 NumPy 数组这为矩阵运算与批量像素处理提供了极大便利。OpenCV 的安装配置请参考其官方安装指南NumPy 可以直接从 Python 包索引PyPI安装$ pip install numpy入门示例读取、显示、灰度转换与保存以下示例演示 OpenCV 处理图像的标准流程读取图片、弹出窗口显示、按键后关闭窗口、转换灰度并保存import cv2 # 读取图像 img cv2.imread(testimg.jpg) # 显示图像在 GUI 窗口中展示 cv2.imshow(image, img) # 等待用户按键参数 0 表示无限期等待直到按下任意键 cv2.waitKey(0) # 关闭所有由 OpenCV 创建的窗口 cv2.destroyAllWindows() # 将图像应用灰度滤镜从 BGR 色彩空间转换为灰度 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将灰度图像保存到新文件 cv2.imwrite(graytest.jpg, gray)关键 API 说明cv2.imread(path)读取图像返回一个 NumPy 数组。注意 OpenCV 默认以BGR而非 RGB通道顺序加载彩色图像这是与 Pillow 的一个重要差异。cv2.imshow(window_name, img)在指定名称的窗口中显示图像仅支持窗口环境桌面 GUI无头服务器环境下不可用。cv2.waitKey(ms)等待键盘输入参数为毫秒数0表示无限等待返回按键的 ASCII 码。它在显示循环中同时负责刷新窗口事件。cv2.destroyAllWindows()关闭所有已创建的 OpenCV 窗口释放资源。cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)执行色彩空间转换COLOR_BGR2GRAY表示 BGR 转灰度。cv2.imwrite(path, img)将 NumPy 数组形式的图像写出为文件格式由文件扩展名决定。由于cv2图像本质是 NumPy 数组你还可以直接对其进行切片、算术运算、逻辑掩码等操作实现阈值分割、直方图均衡、边缘检测如 Canny等高级功能。OpenCV 官方及社区有大量 Python 实现的教程示例可供进一步学习。两个库如何选型维度PillowOpenCV定位日常图像编辑与格式转换计算机视觉与进阶图像分析安装复杂度低pip install Pillow需少量平台依赖中cv2绑定 NumPy按官方指南配置图像表示自有的PIL.Image对象NumPy 数组默认 BGR 通道顺序典型场景缩略图、滤镜、格式转换、EXIF 读取灰度/色彩空间转换、特征检测、视频分析、机器学习预处理性能取向常规编辑足够面向大规模像素运算优化适合计算密集任务简单来说做图像编辑、格式处理、快速加滤镜选 Pillow做计算机视觉、需要把图像当 NumPy 数组做数值运算、或对接机器学习流程选 OpenCV。两者也能互补——例如先用 Pillow 做轻量预处理再用 OpenCV 提取特征。仓库中的定位与进一步探索本章节是 python-guide 中 场景指南Scenario Guide for Python Applications的一部分与数据库、网络、科学计算、机器学习等场景章节并列遵循“按场景给最佳实践选型”的写作理念。仓库使用 Sphinx 构建文档见 docs/conf.pyscenarios/imaging.rst即本章节源文件配套的示例照片存放于 docs/_static/photos 目录可作为测试图像处理流程的真实素材。如果你想继续深入仓库中与之相邻的科学计算章节介绍了 NumPy、SciPy、Matplotlib 等科学计算栈其中的 NumPy 数组操作与 OpenCV 的图像数组模型一脉相承而机器学习章节展示了如何将图像数据接入 scikit-learn 等训练流程。图像处理往往是这些更复杂应用的前置环节掌握 Pillow 与 OpenCV 之后你可以自然衔接到这些进阶方向。【免费下载链接】python-guidePython best practices guidebook, written for humans.项目地址: https://gitcode.com/gh_mirrors/py/python-guide创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻