第2章 · 图像基础

数字图像表示 · 像素 · 分辨率 · 色彩空间 · 坐标系 · OpenCV 简介

1. 像素与分辨率

像素是数字图像的最小信息单元,每个像素存储亮度或颜色值。分辨率指图像中像素的总数(宽×高),决定图像的细节层次。

每个方格 = 1 像素 分辨率 = 宽度像素 × 高度像素 宽度 (例如 640 px) 高度 (480 px)
图1 像素网格与分辨率示意

2. 色彩空间

色彩空间是颜色在数学上的表示模型。常见的包括 RGB、BGR(OpenCV 默认)、HSV、灰度等。

色彩空间通道说明
RGBR, G, B红绿蓝三通道,面向显示
BGRB, G, ROpenCV 默认顺序
灰度单通道亮度信息,0~255
HSVH, S, V色调、饱和度、明度
R G B RGB 色彩立方 每个通道 0~255
图2 RGB 三通道示意

3. 图像坐标系

OpenCV 采用 行-列 坐标系:原点 (0,0) 位于左上角,x 轴向右(列),y 轴向下(行)。

x (列) y (行) (0,0) (x, y) = (160, 80)
图3 OpenCV 图像坐标系:原点左上,x向右,y向下

4. OpenCV 简介与安装

OpenCV (Open Source Computer Vision Library) 是跨平台计算机视觉库,提供数百种图像处理函数。Python 接口为 cv2。

安装命令

# 使用 pip 安装核心库
pip install opencv-python

# 如需额外 contrib 模块
pip install opencv-contrib-python

验证安装:

import cv2
print(cv2.__version__)   # 例如 4.9.0

OpenCV 模块架构(示意)

core imgproc highgui videoio objdetect
图4 OpenCV 主要模块示意(core, imgproc, highgui, videoio, objdetect)

5. 读取与显示图像(快速示例)

import cv2

# 读取图像 (BGR 格式)
img = cv2.imread('example.jpg')

# 获取像素值 (行, 列)
px = img[100, 200]        # BGR 三元组
print(px)

# 显示图像
cv2.imshow('窗口', img)
cv2.waitKey(0)
cv2.destroyAllWindows()