OpenCV 图像基本操作

2025年3月17日 | 阅读 3 分钟

在本教程中,我们将学习与图像相关的基本操作。 我们将讨论以下主题。

  • 访问像素值并修改它们
  • 访问图像属性
  • 设置图像区域
  • 分割和合并图像
  • 更改图像颜色

访问和修改像素值

我们可以通过其行和列坐标检索像素值。它返回 BGR 图像的蓝色、绿色、红色值的数组。它返回灰度图像的相应强度。首先,我们需要加载 BGR 图像。

输出

[190 166 250]

访问图像属性

了解图像的尺寸对于使用图像处理应用程序更好。 在 OpenCV 中,图像通常存储在 Numpy ndarray 中。 要获取图像的形状或大小,请使用 ndarray.shape 查找图像的维度。 然后,我们可以使用索引位置来获取高度、宽度和通道数。

请看以下示例

输出

Image Dimension    :  (4, 1, 3)
Image Height       :  4
Image Width        :  1
Number of Channels :  3
Image Size  : 12

图像 ROI(感兴趣区域)

有时,我们需要处理图像的某些区域。 正如我们在之前的教程中讨论的,人脸检测是在整个图像上进行的。 获得人脸后,我们只选择人脸区域并在其中搜索眼睛,而不是搜索整个图像。 它提高了准确性和性能,因为眼睛总是在脸上,不需要搜索整个图像。

OpenCV Basic Operation on Images

在上图中,如果我们选择球。 我们只需要选择球的区域。

分割和合并图像通道

图像的 BGR 通道可以根据需要分割成它们的平面。 然后,各个通道可以再次从 BGR 图像合并在一起。 这可以通过以下方式完成

注意:cv2.split() 函数是一个慢函数。 Numpy 索引非常有效,如果可能应该使用它。

为图像制作边框

OpenCV 提供了 cv2.copyMakeBorder() 函数来在图像周围创建边框,类似于相框。 该函数的语法如下。

参数

src - 它表示输入图像。

top、bottom、left、right - 它定义了对应方向上的以像素为单位的边框宽度。

borderType - 它定义了要添加的边框类型。 边框可以是以下类型。

value - 如果边框类型为 cv.BORDER_CONSTANT,则为边框颜色

请看以下示例

更改图像颜色

OpenCV cvtColor

cvtColor 用于将图像从一个颜色空间转换为另一个颜色空间。 语法如下

参数

src - 用于输入图像:8 位无符号。

dst - 用于将图像显示为输出。 输出图像将与输入图像具有相同的大小和深度。

code - 颜色空间转换代码。

请看以下示例

输出

OpenCV cvtColor