📜  将 numpy 数组转换为 cv2 图像 (1)

📅  最后修改于: 2023-12-03 15:25:14.464000             🧑  作者: Mango

将 NumPy 数组转换为 OpenCV 图像

在图像处理和计算机视觉领域中,通常会涉及到将 NumPy 数组转换为 OpenCV 图像。这篇文章将介绍如何使用 Python 中的 OpenCV 库来完成这个任务。

转换方式

OpenCV 中的图像是以多维数组的形式表示的,而 NumPy 库也提供了多维数组的支持。因此,NumPy 数组可以直接转换为 OpenCV 图像,也可以将 OpenCV 图像转换为 NumPy 数组。

NumPy 数组转换为 OpenCV 图像

可以使用以下代码将 NumPy 数组转换为 OpenCV 图像:

import cv2
import numpy as np

# 创建一个100x100的纯蓝色 NumPy 数组
img_np = np.zeros((100, 100, 3), np.uint8)
img_np[:, :] = (255, 0, 0)

# 将 NumPy 数组转换为 OpenCV 图像
img_cv = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)

这里的 cv2.COLOR_BGR2RGB 表示将图像从 BGR 格式转换为 RGB 格式。如果 NumPy 数组中的值是灰度图像,则可以使用 cv2.cvtColor(img_np, cv2.COLOR_GRAY2BGR) 转换为 BGR 格式的图像。

OpenCV 图像转换为 NumPy 数组

可以使用以下代码将 OpenCV 图像转换为 NumPy 数组:

import cv2
import numpy as np

# 读取一张图像
img_cv = cv2.imread('image.jpg')

# 将 OpenCV 图像转换为 NumPy 数组
img_np = np.array(img_cv)

在这里,cv2.imread('image.jpg') 加载图像并返回其对应的 OpenCV 图像对象。然后,可以使用 np.array() 函数将其转换为 NumPy 数组。

总结

通过以上代码示例,可以看出将 NumPy 数组转换为 OpenCV 图像和将 OpenCV 图像转换为 NumPy 数组都非常简单。这些转换可帮助程序员更轻松地在 NumPy 数组与 OpenCV 图像之间进行数据交换和计算。