cvtColor

函数功能

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]]]