merge

函数功能

merge函数用于将多个单通道图像合并为一个多通道图像。它接受一个包含单通道图像的数组,并将这些图像按照顺序组合成一个输出图像,常用于将RGB或RGBA通道合并为一个彩色图像。

函数接口

1
cv2.merge(mv)

参数

参数名

描述

取值范围

输入/输出

mv

一个包含多个单通道图像的可迭代对象(如元组或列表),每个元素应该是单通道的类型相同的图像,它们的形状(即宽度和高度)必须一致。

mv包含多个uint8类型的单通道图像,每个像素范围是0到255。

输入

返回值

错误码

错误码

描述

INVALID_PARAM_MSG

输入为空。

NOT_SUPPORT_MSG

输入图像通道数不为3,图像非uint8类型。

示例

 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
30
import numpy as np
import cv2

# 创建三个通道
img_bgr = [np.zeros((5, 5), dtype=np.uint8) for _ in range(3)]  

# 为每个通道赋值 
img_bgr[0] = np.array([[255, 0, 0, 0, 255],
                      [0, 255, 255, 255, 0],
                      [0, 255, 0, 255, 0],
                      [0, 255, 255, 255, 0],
                      [255, 0, 0, 0, 255]], dtype=np.uint8)  

img_bgr[1] = np.array([[0, 255, 0, 255, 0],
                      [255, 0, 0, 0, 255],
                      [0, 0, 255, 255, 0],
                      [255, 0, 0, 0, 255],
                      [0, 255, 0, 255, 0]], dtype=np.uint8)  

img_bgr[2] = np.array([[0, 0, 255, 255, 0],
                      [255, 255, 0, 0, 255],
                      [255, 0, 0, 0, 255],
                      [255, 255, 0, 0, 255],
                      [0, 0, 255, 255, 0]], dtype=np.uint8)


# 使用cv2.merge将三个通道合并成一个图像 
merged_img = cv2.merge(img_bgr)  
# 显示合并后的图像 
print(merged_img)

运行结果:

 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
[[[255   0   0]
  [  0 255   0]
  [  0   0 255]
  [  0 255 255]
  [255   0   0]]

 [[  0 255 255]
  [255   0 255]
  [255   0   0]
  [255   0   0]
  [  0 255 255]]

 [[  0   0 255]
  [255   0   0]
  [  0 255   0]
  [255 255   0]
  [  0   0 255]]

 [[  0 255 255]
  [  0   0   0]
  [  0   0   0]
  [  0   0   0]
  [  0   0   0]]

 [[  0   0   0]
  [  0   0   0]
  [  0   0   0]
  [  0   0   0]
  [255   0   0]]]