news 2026/4/16 3:53:13

如何用Python实现图像处理与计算机视觉:Pillow、OpenCV、face_recognition完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用Python实现图像处理与计算机视觉:Pillow、OpenCV、face_recognition完全指南

如何用Python实现图像处理与计算机视觉:Pillow、OpenCV、face_recognition完全指南

【免费下载链接】awesome-python-cnPython资源大全中文版,包括:Web框架、网络爬虫、模板引擎、数据库、数据可视化、图片处理等,由「开源前哨」和「Python开发者」微信公号团队维护更新。项目地址: https://gitcode.com/gh_mirrors/aw/awesome-python-cn

Python资源大全中文版是一个全面的Python资源列表,涵盖Web框架、网络爬虫、数据库、数据可视化、图片处理等多个领域,由「开源前哨」和「Python开发者」微信公号团队维护更新。本文将聚焦于Python图像处理与计算机视觉领域,介绍Pillow、OpenCV和face_recognition三个核心库的使用方法,帮助新手快速掌握图像处理的基础知识和实战技能。

一、为什么选择Python进行图像处理?

Python凭借其简洁的语法、丰富的库支持和强大的社区生态,成为图像处理和计算机视觉领域的首选语言。无论是简单的图片裁剪、滤镜添加,还是复杂的人脸识别、目标检测,Python都能提供高效且易用的解决方案。以下是几个核心优势:

  • 丰富的库支持:Pillow、OpenCV、face_recognition等库覆盖了从基础到高级的图像处理需求。
  • 易上手性:Python语法简洁,即使是新手也能快速入门。
  • 强大的社区:遇到问题时,丰富的教程和社区支持能帮助你快速解决。

![Python图像处理资源](https://raw.gitcode.com/gh_mirrors/aw/awesome-python-cn/raw/e718fecd821fb94d696713da1259a86f18b400af/开源前哨 + Python二维码.png?utm_source=gitcode_repo_files)

图:Python开发者和开源前哨提供的资源分享平台,获取更多Python学习资料

二、Pillow:Python图像处理基础库

Pillow是Python Imaging Library(PIL)的分支,提供了丰富的图像处理功能,如打开、显示、保存图片,以及裁剪、旋转、滤镜等操作。它是处理基础图像任务的理想选择。

2.1 安装Pillow

使用pip即可轻松安装Pillow:

pip install pillow

2.2 基础操作示例

打开并显示图片

from PIL import Image # 打开图片 img = Image.open("example.jpg") # 显示图片 img.show() # 保存图片 img.save("output.jpg")

裁剪图片

# 裁剪区域:(左, 上, 右, 下) cropped_img = img.crop((100, 100, 400, 400)) cropped_img.save("cropped.jpg")

添加滤镜效果

from PIL import ImageFilter # 应用模糊滤镜 blurred_img = img.filter(ImageFilter.BLUR) blurred_img.save("blurred.jpg")

Pillow支持的功能还包括调整大小、旋转、颜色模式转换等,详细内容可参考Pillow官方文档。

三、OpenCV:强大的计算机视觉库

OpenCV(Open Source Computer Vision Library)是一个跨平台的计算机视觉库,提供了丰富的图像和视频处理功能,如特征检测、目标跟踪、图像分割等。它广泛应用于自动驾驶、人脸识别、医学影像等领域。

3.1 安装OpenCV

pip install opencv-python

3.2 核心功能示例

读取并显示图片

import cv2 # 读取图片(OpenCV默认读取为BGR格式) img = cv2.imread("example.jpg") # 转换为RGB格式(以便用matplotlib显示) img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 显示图片 cv2.imshow("Image", img) cv2.waitKey(0) cv2.destroyAllWindows()

边缘检测

# 转换为灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Canny边缘检测 edges = cv2.Canny(gray, 50, 150) cv2.imwrite("edges.jpg", edges)

人脸检测

# 加载人脸检测模型 face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml") # 检测人脸 faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5) # 绘制人脸框 for (x, y, w, h) in faces: cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2) cv2.imwrite("face_detection.jpg", img)

OpenCV的功能远不止于此,它还支持视频处理、3D重建、机器学习等高级功能,更多内容可参考OpenCV官方文档。

四、face_recognition:简单易用的人脸识别库

face_recognition是一个基于dlib的人脸识别库,提供了简单易用的API,能够实现人脸检测、人脸比对、人脸特征提取等功能。即使是新手,也能快速实现人脸识别功能。

4.1 安装face_recognition

pip install face_recognition

4.2 人脸识别示例

人脸检测

import face_recognition # 加载图片 image = face_recognition.load_image_file("people.jpg") # 检测人脸位置 face_locations = face_recognition.face_locations(image) print(f"Found {len(face_locations)} face(s) in this image.")

人脸比对

# 加载已知人脸 known_image = face_recognition.load_image_file("known_person.jpg") known_encoding = face_recognition.face_encodings(known_image)[0] # 加载待比对人脸 unknown_image = face_recognition.load_image_file("unknown_person.jpg") unknown_encoding = face_recognition.face_encodings(unknown_image)[0] # 比对人脸 results = face_recognition.compare_faces([known_encoding], unknown_encoding) if results[0]: print("This is the known person!") else: print("This is not the known person.")

face_recognition的API设计非常直观,适合快速开发人脸识别相关应用,更多功能可参考face_recognition官方文档。

五、如何选择适合的库?

  • Pillow:适合基础图像处理任务,如裁剪、旋转、滤镜等,轻量级且易于使用。
  • OpenCV:适合复杂的计算机视觉任务,如目标检测、视频处理、特征提取等,功能强大但学习曲线较陡。
  • face_recognition:专注于人脸识别,API简单易用,适合快速实现人脸识别功能。

根据项目需求选择合适的库,也可以结合使用,例如用OpenCV进行图像预处理,再用face_recognition进行人脸识别。

六、总结

Python在图像处理与计算机视觉领域提供了丰富的工具和库,从基础的Pillow到强大的OpenCV,再到专注于人脸识别的face_recognition,满足了不同层次的需求。通过本文的介绍,希望能帮助你快速入门并选择适合自己的工具。

如果你想了解更多Python资源,可以关注「开源前哨」和「Python开发者」微信公众号,获取最新的开源项目和技术资讯。


参考资料

  • Python资源大全中文版:README.md
  • Pillow官方文档:https://pillow.readthedocs.io/
  • OpenCV官方文档:https://docs.opencv.org/
  • face_recognition官方文档:https://github.com/ageitgey/face_recognition

【免费下载链接】awesome-python-cnPython资源大全中文版,包括:Web框架、网络爬虫、模板引擎、数据库、数据可视化、图片处理等,由「开源前哨」和「Python开发者」微信公号团队维护更新。项目地址: https://gitcode.com/gh_mirrors/aw/awesome-python-cn

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 3:50:16

mmdetection自定义数据集训练全流程解析

1. 从零开始搭建mmdetection训练环境 第一次接触mmdetection时,我被它强大的目标检测能力所吸引,但也被复杂的配置过程劝退过几次。经过多个项目的实战,我总结出了一套最稳定的环境搭建方法,特别适合新手快速上手。 mmdetection作…

作者头像 李华