【问题标题】:How to remove L-channel from Lab Image如何从实验室图像中删除 L 通道
【发布时间】:2020-01-30 12:23:13
【问题描述】:

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

【问题讨论】:

  • 何必删除它——您可以忽略它并在后续处理中访问ab 频道...

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


【解决方案1】:

cv2.split 将通道与图像分开。您必须调用cv2.merge 函数来合并它们。

merged = cv2.merge((a,b))

【讨论】:

    【解决方案2】:

    您可以使用函数cv2.merge()。正确的语法是:

    merged = cv2.merge( (channel_1,channel_2,...) )
    

    在你的情况下:

    merged = cv2.merge((a,b))
    

    【讨论】:

      【解决方案3】:

      您可以只使用 Numpy 的 delete() 函数来删除第三轴(轴 = 2)中的第一个通道(索引 = 0) - 其中第一轴对应于列,第二轴对应于行,第三轴对应于通道:

      # Delete "L" channel from Lab image
      ab = np.delete(lab_image, 0, 2)
      

      【讨论】:

        猜你喜欢
        • 2016-08-20
        • 1970-01-01
        • 2021-08-30
        • 2014-11-28
        • 2017-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多