我有一个在浮点RGB中包含单个像素/颜色的numpy数组。我需要将此值转换为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?
最佳答案
您没有正确调整它的形状。使用下面的代码来做到这一点。
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的值是整数。由于您的值是浮点数,因此建议您使用在此链接上找到的rgbtolab函数。
https://stackoverflow.com/a/16020102/9320324
关于python - 使用python OpenCV将单一值颜色转换为LAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60325564/