OpenCV提供的 merge( ) 函数可以合并B、G、R通道的图像对象,成为 BGR 图像对象,语法如下:
bgr_image = cv2.merge([blue, green, red]) # 合并通道的图像对象
上述bgr_image是BGR图像对象,merge( )函数的参数可以是 列表 (list),参考上述语法公式,也可以使用 元组 (tuple)方式传递要合并的通道图像对象,参数内容如下:
blue
:
B
通道图像对象。
green
:
G
通道图像对象。
red
:
R
通道图像对象。
注 :合并顺序若不同,所得的结果也会不同。
程序实例 ch4_10.py: 先按B→G→R顺序合并图像,然后按R→G→B顺序合并图像,最后列出两个结果,窗口标题会显示合并顺序。
执行结果
从上述实例可以得知,合并的顺序不同所得到的图像也会不同。以B→G→R顺序所得就是BGR色彩图像,以R→G→B顺序所得就是RGB色彩图像。至于BGR色彩图像与RGB色彩图像的转换,读者可以参考4-1节。
OpenCV提供的 merge( ) 函数也可以合并H、S、V通道的图像对象,成为 HSV 图像对象,语法如下:
hsv_image = cv2.merge([hue, saturation, value]) # 合并通道的图像对象
上述hsv_image是HSV图像对象,merge( )函数的参数内容如下:
hue
:
H
通道图像对象。
saturation
:
S
通道图像对象。
value
:
V
通道图像对象。
注 :合并顺序若不同,所得的结果也会不同。
程序实例 ch4_11.py: 显示原图像,接着将BGR图像转换成HSV图像,然后将HSV图像的通道拆分,再按H→S→V顺序合并,最后列出合并结果。
执行结果 下图左边是原图像,右边是拆分成H、S、V通道的图像再合并的结果。