第3章 OpenCV环境搭建
OpenCV的安装与配置、读取视频帧、显示与保存图像、基础图像处理操作。
3.1 OpenCV 安装与配置
OpenCV(Open Source Computer Vision Library)是计算机视觉领域最流行的开源库。在 Python 环境中,推荐使用 opencv-python 包。安装命令如下:
# 使用 pip 安装核心库
pip install opencv-python
# 如需额外 contrib 模块(跟踪、特征等)
pip install opencv-contrib-python
验证安装是否成功:
import cv2
print(cv2.__version__) # 例如 4.9.0
3.2 读取视频帧
使用 cv2.VideoCapture 从摄像头或视频文件读取帧。核心步骤:
import cv2
cap = cv2.VideoCapture(0) # 0 表示默认摄像头
# cap = cv2.VideoCapture('video.mp4') # 或读取视频文件
while True:
ret, frame = cap.read() # ret 布尔值, frame 是图像数组
if not ret:
break
# 对 frame 进行处理...
cv2.imshow('Frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
3.3 显示与保存图像
显示图像使用 cv2.imshow,保存图像使用 cv2.imwrite。
import cv2
img = cv2.imread('example.jpg') # 读取图像
cv2.imshow('Display Window', img) # 显示图像
cv2.waitKey(0) # 等待按键
cv2.destroyAllWindows()
# 保存图像
cv2.imwrite('output.png', img) # 支持 PNG, JPG 等格式
3.4 基础图像处理操作
OpenCV 提供丰富的图像处理函数。下表列出最常用的基础操作:
| 操作 | 函数 | 说明 |
|---|---|---|
| 灰度转换 | cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) | 将彩色图转为单通道灰度 |
| 高斯模糊 | cv2.GaussianBlur(img, (5,5), 0) | 降噪平滑 |
| Canny边缘检测 | cv2.Canny(img, 50, 150) | 提取边缘 |
| 图像缩放 | cv2.resize(img, (width, height)) | 改变尺寸 |
| 绘制矩形 | cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2) | 目标框标注 |
示例代码:
import cv2
img = cv2.imread('scene.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5,5), 0)
edges = cv2.Canny(blur, 50, 150)
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
3.5 综合示例:从摄像头读取并实时处理
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (7,7), 0)
edges = cv2.Canny(blur, 30, 100)
cv2.imshow('Original', frame)
cv2.imshow('Edges', edges)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()