Преобразование цветов с одним значением в LAB с использованием python OpenCV - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть массив numpy, содержащий один пиксель / цвет в RGB с плавающей запятой. Мне нужно преобразовать это значение в LAB, для чего я пробую следующее:

color = cv2.cvtColor(color.reshape((1,1,3)), cv2.COLOR_RGB2LAB).reshape((3))

Где цвет: array([137.38841, 161.38841, 65.38841], dtype=float32)

В результате получается LAB: [100. 0. 0.]

Что явно не так, как должно быть близко к: [62.667494977600484, 22.98637993404601, 46.1397720707445]

Как преобразовать значение в LAB?

1 Ответ

2 голосов
/ 20 февраля 2020

Вы не изменили его правильно. Используйте приведенный ниже код, чтобы сделать это.

import cv2
import numpy as np
bgr = [40, 158, 16]
lab = cv2.cvtColor( np.uint8([[bgr]] ), cv2.COLOR_BGR2LAB)[0][0]
print(lab)  #[145  71 177]

Выше кода поможет значение rgb / bgr в целых числах. Поскольку ваши значения находятся в плавающей точке, я предлагаю вам go с функцией rgbtolab, найденной по этой ссылке. { ссылка }

...