之前几篇文章介绍了OpenCV的一些模块概念,并没有细说每个模块具体的方法和使用。接下来就会详细介绍每个模块模块包含的方法和使用。
本文将详细介绍图像的四种基本操作:访问和修改像素值、图像 ROI (Region of Interest) 操作、图像通道分离与合并、以及图像的缩放、旋转、平移和翻转。
常用方法:
操作 | 函数/方法 | 说明 |
---|---|---|
访问像素值 | image[y, x] | 获取或修改像素值 |
图像 ROI | image[y1:y2, x1:x2] | 获取或修改图像中的矩形区域 |
通道分离与合并 | cv2.split() / cv2.merge() | 分离或合并图像通道 |
图像缩放 | cv2.resize() | 调整图像大小 |
图像旋转 | cv2.getRotationMatrix2D() | 旋转图像 |
图像平移 | cv2.warpAffine() | 平移图像 |
图像翻转 | cv2.flip() | 翻转图像 |
图像加法 | cv2.add() | 对两幅图像进行加法运算 |
图像减法 | cv2.subtract() | 对两幅图像进行减法运算 |
图像混合 | cv2.addWeighted() | 对两幅图像进行加权混合 |
阈值处理 | cv2.threshold() | 对图像进行阈值处理 |
平滑处理 | cv2.blur() / cv2.GaussianBlur() | 对图像进行平滑处理 |
1. 访问和修改像素值
图像是由像素组成的矩阵,每个像素都有一个或多个值,表示颜色或灰度。在灰度图像中,每个像素只有一个值,表示灰度强度;在彩色图像中,每个像素通常有三个值,分别表示红色、绿色和蓝色(RGB)通道的强度。
访问像素值
在 Python 中,可以使用 OpenCV 库来访问图像的像素值。假设我们有一个灰度图像 img,可以通过 img[y, x] 来访问位于 (x, y) 位置的像素值。对于彩色图像,可以通过 img[y, x, c] 来访问特定通道 c 的像素值,其中 c 为 0(蓝色)、1(绿色)或 2(红色)。
import cv2# 读取图像
img = cv2.imread('image.jpg')# 访问像素值
pixel_value = img[100