一、拆分
使用 spilt() 函数可以将 RGB 图像一次拆分为三个通道;如果只是想提取某一个通道的图像,可以使用列表索引。
img = cv2.imread(r'F:\picture\1111.jpg',cv2.IMREAD_UNCHANGED)
Blue,Green,Red = cv2.split(img)
'''
或者:
Blue = cv2.spilt(img)[0]
Green = cv2.spilt(img)[1]
Red = cv2.spilt(img)[2]
'''
# 显示单个通道图像
cv2.imshow('channel_blue',Blue)
cv2.waitKey(0)
cv2.destroyAllWindows()
二、合并
1. 使用原通道合并
使用 merge() 函数可以将多个通道合并为一张图片
# 通道合并
merge_img = cv2.merge([Red,Green,Blue])
cv2.imshow('merge_imgfile',merge_img)
改变通道顺序再合并后的图像:
2. 原通道使用一个,其余通道皆为0
rows,cols,chns = img.shape # 提取通道参数
blue = np.zeros((rows,cols),img.dtype) # blue通道参数设置为全0
green = np.zeros((rows,cols),img.dtype)
zeromerge_img = cv2.merge([blue,green,Red])
cv2.imshow('zeromerge_imgfile',zeromerge_img)
三、源代码
#Author:MuMengSunny
#Filename:通道的拆分与合并
import cv2
import numpy as np
img = cv2.imread(r'F:\picture\1111.jpg',cv2.IMREAD_UNCHANGED)
Blue,Green,Red = cv2.split(img)
'''
或者:
Blue = cv2.spilt(img)[0]
Green = cv2.spilt(img)[1]
Red = cv2.spilt(img)[2]
'''
# 显示单个通道图像
cv2.imshow('channel_blue',Blue)
# 通道合并
merge_img = cv2.merge([Red,Green,Blue])
cv2.imshow('merge_imgfile',merge_img)
# 提取通道参数
rows,cols,chns = img.shape
blue = np.zeros((rows,cols),img.dtype)
green = np.zeros((rows,cols),img.dtype)
zeromerge_img = cv2.merge([blue,green,Red])
cv2.imshow('zeromerge_imgfile',zeromerge_img)
cv2.waitKey(0)
cv2.destroyAllWindows()