如何从实验室图像中删除L通道

时间:2019-10-01 08:31:52

标签: python python-3.x python-2.7 opencv

我需要获取一个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通道...

3 个答案:

答案 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)