cvtColor函数用于图像颜色空间的转换。它可以将图像从一种颜色格式转换为另一种格式,例如从BGR(默认)转换为灰度、RGB等。这对于图像处理和计算机视觉任务非常重要,因为不同的颜色空间在特定应用中提供了不同的信息和优势。
1 | cv2.cvtColor(src, code, dst=None, dstCn=0) |
参数名 |
描述 |
取值范围 |
输入/输出 |
---|---|---|---|
src |
输入图像。 |
非空 |
输入 |
code |
颜色转换代码,用于指定转换类型。如cv2.COLOR_BGR2GRAY、cv2.COLOR_BGR2RGB、cv2.COLOR_RGB2BGR、cv2.COLOR_GRAY2BGR等。 |
cv2.COLOR_BGR2GRAY、cv2.COLOR_BGR2RGB、cv2.COLOR_RGB2BGR、cv2.COLOR_GRAY2BGR |
输入 |
dst |
输出图像,可选,默认会创建新图像。 |
非空 |
输出 |
dstCn |
目标图像的通道数,默认为0。表示dstCn会根据颜色转换代码(code)自动确定。 |
{0,1,2,3,4} |
输入 |
错误码 |
描述 |
---|---|
INVALID_PARAM_MSG |
参数“src”存在空指针。 |
NOT_SUPPORT_MSG |
输入的图像类型不是uint8类型或不是“code”支持的模式。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 | import numpy as np import cv2 # 加载图像 src = np.array([[0, 0, 0, 0, 0], [0, 1, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 1, 0], [0, 0, 0, 0, 0]], dtype=np.uint8) # 将图像从灰度转换到BGR dst = cv2.cvtColor(src[..., None], cv2.COLOR_GRAY2BGR) print(dst) |
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | [[[1 1 1] [1 1 1] [1 1 1] [0 0 0] [0 0 0]] [[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0]] [[0 0 0] [1 1 1] [0 0 0] [1 1 1] [0 0 0]] [[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0]] [[0 0 0] [0 0 0] [0 0 0] [0 0 0] [0 0 0]]] |