【发布时间】: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