python - 使用python OpenCV将单一值颜色转换为LAB

标签 python opencv colors cielab

我有一个在浮点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/

相关文章:

python - 根据另一列的值更改列中值的顺序

python - 如何在Python中使用RSA私钥(不是普通签名)加密数据?

python - 需要根据特定列上的某些规则在 Pandas 数据框中添加新列

c++ - OpenCV 背景减法/密码本?

Python OpenCV putText() 显示(非ascii、unicode、utf)字符符号

iOS 核心图形 : How to properly set and use colors

java - 如何在Java中将8个字符的字符串转换为ARGB颜色格式?

python - 是否可以为方法定义 sphinx 文档提供单独的新行

c# - 从 HSV 中提取色度/相对色度

c++ - 在 OSX 上使用 Boost 线程时访问相机时出现问题