matlab中makecform('srgb2xyz')和rgb2xyz()的区别
the difference between makecform('srgb2xyz') and rgb2xyz() in matlab
我想知道matlab在使用函数rgb2xyz()时做了什么?
我无法使用 rgb2xyz 转换矩阵重新生成结果。
此外,使用 makecform('srgb2xyz') 和使用 rgb2xyz() 有什么区别吗?他们产生不同的结果..
makecform('srgb2xyz')
的默认白点似乎是 D50
,而 rgb2xyz
默认为 D65
。
>> applycform([.2 .3 .4],makecform('srgb2xyz','AdaptedWhitePoint',whitepoint('D65')))
ans =
0.0638 0.0690 0.1356
>> rgb2xyz([.2 .3 .4])
ans =
0.0638 0.0690 0.1356
>> applycform([.2 .3 .4],makecform('srgb2xyz'))
ans =
0.0617 0.0679 0.1024
>> rgb2xyz([.2 .3 .4],'WhitePoint','D50')
ans =
0.0616 0.0679 0.1025
请注意 makecform
的文档建议改用更新的 rgb2xyz
。至于您关于使用矩阵重现结果的评论,请注意矩阵通常源自/应用于 linear 数据。如果您想重现结果,您还需要对 srgb 伽玛校正进行建模。
我想知道matlab在使用函数rgb2xyz()时做了什么? 我无法使用 rgb2xyz 转换矩阵重新生成结果。 此外,使用 makecform('srgb2xyz') 和使用 rgb2xyz() 有什么区别吗?他们产生不同的结果..
makecform('srgb2xyz')
的默认白点似乎是 D50
,而 rgb2xyz
默认为 D65
。
>> applycform([.2 .3 .4],makecform('srgb2xyz','AdaptedWhitePoint',whitepoint('D65')))
ans =
0.0638 0.0690 0.1356
>> rgb2xyz([.2 .3 .4])
ans =
0.0638 0.0690 0.1356
>> applycform([.2 .3 .4],makecform('srgb2xyz'))
ans =
0.0617 0.0679 0.1024
>> rgb2xyz([.2 .3 .4],'WhitePoint','D50')
ans =
0.0616 0.0679 0.1025
请注意 makecform
的文档建议改用更新的 rgb2xyz
。至于您关于使用矩阵重现结果的评论,请注意矩阵通常源自/应用于 linear 数据。如果您想重现结果,您还需要对 srgb 伽玛校正进行建模。