如何从Python中的LAB (l*a*b)颜色空间获取a通道

Kan*_*vas 3 python opencv python-3.x

我是 opencv 新手,尝试将 RGB 图像转换为 LAB 颜色空间。我正在使用下面的代码来做到这一点。

data_path = 'D:/Images/'
image_name= '1.png'
img = cv2.imread(os.path.join(data_path, image_name),cv2.IMREAD_COLOR) # Reads image from disk 
img = cv2.cvtColor(img, cv2.COLOR_BGR2LAB) # changes RGB to LAB color space

img = img [127.5, 1, 127.5]  # This i was trying to get a-channel only but gives error
Run Code Online (Sandbox Code Playgroud)

现在我只想使用 LAB 图像的一个通道作为 1 通道输入馈送到我的程序中。如何仅使用 LAB 色彩空间图像的 a 通道​​?

小智 6

我正在使用opencv2和python来解决这个问题

    import cv2
    input = cv2.imread('path_to_image.png')
    cv2.imshow('Hello World', input)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    lab = cv2.cvtColor(input,cv2.COLOR_BGR2LAB)
    cv2.imshow("l*a*b",lab)

    L,A,B=cv2.split(lab)
    cv2.imshow("L_Channel",L) # For L Channel
    cv2.imshow("A_Channel",A) # For A Channel (Here's what You need)
    cv2.imshow("B_Channel",B) # For B Channel

    cv2.waitKey(0)
    cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助您解决您的问题