【问题标题】:how to change XYZ color space to RGB 0-255如何将 XYZ 颜色空间更改为 RGB 0-255
【发布时间】:2020-09-22 14:48:51
【问题描述】:

我有这样的 XYZ 数据集:

[[  15.4999257    20.91432805    8.15938343]
 [  38.47211872   41.38471882    4.41641215]
 [   8.42304194   10.26972173    4.58244444]
 [  59.15345728   65.6834669    42.20671404]
 [  48.21549352   50.67621445    7.84460441]
 [  28.5987903    29.48986333   25.78866701]
 [  16.37042029   11.17896503   20.92325834]...]

我想把它改成 RGB 0-255:

import numpy as np

XYZ_to_RGB_matrix = [
    [3.24062548, -1.53720797, -0.49862860],
    [-0.96893071, 1.87575606, 0.04151752],
    [0.05571012, -0.20402105, 1.05699594]]

my_rgb = (np.dot(XYZ_to_RGB_matrix, xyz_test) * 255).astype('uint8')

xyz_test 只是 XYZ 数据集中的一个行数组,

但是,我发现结果没有对应正确的标签,

例如,XYZ:[ 15.4999257 20.91432805 8.15938343] 它的标签是绿叶 但是我的 rgb 结果是 [244 116 51] 它不是绿色的,所以我的代码有错误吗?

【问题讨论】:

  • 你试过cv2.cvtColor(... cv2.COLOR_XYZ2RGB) 吗?
  • @Miki 可怕的是我在使用 cvtColor stackoverflow.com/questions/62175830/…987654321@时也遇到了错误
  • 你的图片是单通道的,但必须是3通道。正确重塑它
  • @Miki 感谢您的回复,您能否添加更多关于 3channels 的详细信息?

标签: python opencv matplotlib colors computer-vision


【解决方案1】:

试试这个代码:

from colormath.color_objects import sRGBColor, XYZColor
from colormath.color_conversions import convert_color

XYZ = [[15.4999257, 20.91432805, 8.15938343],
       [38.47211872, 41.38471882, 4.41641215],
       [8.42304194, 10.26972173, 4.58244444],
       [59.15345728, 65.6834669, 42.20671404],
       [48.21549352, 50.67621445, 7.84460441],
       [28.5987903, 29.48986333, 25.78866701],
       [16.37042029, 11.17896503, 20.92325834]]

RGB = []

for xyz_list in XYZ:
       xyz = XYZColor(*[component/100 for component in xyz_list])
       rgb = convert_color(xyz, sRGBColor)
       rgb_list = [255*color for color in rgb.get_value_tuple()]
       RGB.append(rgb_list)

print(RGB)

使用这段代码,我得到这个输出为 RGB 矩阵:

[92.22372010136964, 137.4037125386466, 78.86090637192737]
[189.9967785535171, 173.00440159210268, 0.0]
[77.62483771390573, 95.56815462725146, 61.177682509553435]
[201.10203247049455, 216.97942244866422, 185.00583953450555]
[211.2583657458791, 187.8058726835025, 47.400682365292234]
[147.26702521874506, 147.4599728158739, 152.30904210885427]
[131.7100385873106, 69.84477339437986, 144.29850008120889]

请注意,您必须安装所需的软件包:

pip install colormath

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    相关资源
    最近更新 更多