我需要获取一个Lab图像,但是没有l通道。通过删除l通道或将所有三个通道向上拆分,然后将a和b通道合并在一起。
到目前为止,我的代码(甚至无法解决此问题):
lab_image = cv2.cvtColor(numpy.array(color_images_array)[i], cv2.COLOR_RGB2LAB)
_, a, b = cv2.split(lab_image)
此代码仅拆分通道,但不合并a通道和b通道...
答案 0 :(得分:3)
cv2.split
将通道与图像分开。您必须调用cv2.merge
函数将它们合并。
merged = cv2.merge((a,b))
答案 1 :(得分:2)
您可以使用功能cv2.merge()
。正确的语法是:
merged = cv2.merge( (channel_1,channel_2,...) )
在您的情况下:
merged = cv2.merge((a,b))
答案 2 :(得分:0)
您可以使用Numpy的delete()
函数删除第3轴(axis = 2)中的第一个通道(index = 0)-第一个轴对应于列,第二个轴对应于行,第三个轴对应到频道:
# Delete "L" channel from Lab image
ab = np.delete(lab_image, 0, 2)