[Python 教程] OpenCV-Python 入门:图像处理基础详解
OpenCV-Python 入门:图像处理基础详解
OpenCV 是一个跨平台计算机视觉库,轻量级且高效,支持 Python 接口。本文将系统介绍 OpenCV 的核心概念和基础操作。
一、OpenCV 简介
OpenCV 可以运行在 Linux、Windows 和 Mac OS 上,由 C 函数和 C++ 类构成,实现了图像处理和计算机视觉的通用算法。
二、安装方法
# 安装 NumPy pip install numpy # 安装 OpenCV(主模块) pip install opencv-python # 安装完整包(含附加模块) pip install opencv-contrib-python
三、核心模块
| 模块 | 功能 |
|---|---|
| core | 核心数据结构 |
| imgproc | 图像滤波、几何变换、颜色空间转换 |
| imgcodecs | 图像文件读写 |
| highgui | GUI 操作(窗口、滑动条、键盘鼠标事件) |
| videoio | 视频捕获和编解码 |
| video | 视频分析(背景减法、运动估计、目标跟踪) |
| dnn | 深度神经网络 |
| ml | 机器学习(分类、回归、聚类) |
| objdetect | 目标检测(人脸、眼睛、行人等) |
四、应用场景
人脸识别系统
手势识别与人机交互
物体识别与检测
医学图像分析
运动跟踪
增强现实
机器人与自动驾驶
五、图像基础概念
5.1 像素与颜色
数字图像由像素组成,RGB 模型中每个通道取值范围 [0, 255]。800×1200 分辨率的图像包含 96 万像素。
5.2 图像文件类型
BMP - Windows 位图
JPEG - 有损压缩
PNG - 无损压缩,支持透明
TIFF - 高质量图像存储
六、OpenCV 重要特性
6.1 坐标系
左上角为原点 (0, 0),像素索引从 0 开始。
6.2 BGR 颜色顺序
注意:OpenCV 使用 BGR 而非 RGB 顺序(历史原因)。
import cv2
import numpy as np
# 读取图像(BGR 顺序)
img = cv2.imread('image.jpg')
# BGR 转 RGB
img_rgb = img[:, :, ::-1]
# 或者使用 split/merge
b, g, r = cv2.split(img)
img_rgb = cv2.merge([r, g, b])七、像素操作
7.1 访问像素
# 访问彩色图像像素 (x=40, y=6) (b, g, r) = img[6, 40] # 访问单个通道 b = img[6, 40, 0] # 获取图像属性 height, width, channels = img.shape total_pixels = img.size data_type = img.dtype # uint8
7.2 修改像素
# 设置像素为红色 img[6, 40] = (0, 0, 255) # 获取区域(ROI) top_left = img[0:50, 0:50]
7.3 灰度图像处理
# 读取灰度图像
gray = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 访问像素强度
intensity = gray[6, 40]
# 修改像素
gray[6, 40] = 0 # 黑色八、图像显示
import cv2
# 显示图像
cv2.imshow("Image", img)
# 等待键盘输入(0 表示无限等待)
cv2.waitKey(0)
# 关闭所有窗口
cv2.destroyAllWindows()九、总结
本文介绍了 OpenCV 的基础知识,包括安装、核心模块、图像概念、像素操作等。掌握这些基础后,可以进一步学习图像滤波、几何变换、特征检测等高级技术。
十、后续学习方向
图像滤波与平滑
边缘检测
轮廓查找与分析
特征点检测
目标识别与跟踪
深度学习集成
