将颜色从RGB采样到xyY空间

问题描述 投票:0回答:1

我正在尝试从RGB图像中采样一种颜色,并将其转换为相应的XY坐标。通过先从xyY坐标开始获取RGB图像,然后将其转换为RGB,即:]

如果我在xyY空间中具有坐标B =(0.011,0.733),则在Matlab中使用函数xyz2rgb会产生以下类型的输出(-1.0906,1.1497,0.3837),其中三刺激值之一为负。我在RGB中使用了这种颜色来产生彩色图像。在将获得的矩阵映射到[0,1]范围并将彩色图像另存为jpg文件之后,我再次在其中打开它并尝试从此处采样相同的颜色。 RGB颜色坐标not等于原始坐标,但为(0.348,0.633,0.298),通过rgb2xyz不会得到预期的原始点B。

如何克服这种差异?有没有一种方法可以使我从具有非负值的RGB三元组开始返回点B?

编辑:我的理解是xyY中的点B在RGB色域之外,在转换时,其中一个值变为负值。但是,它仍然可以正确显示在图像中,但是当从图像中恢复该颜色时,RGB坐标都为正,因此无法恢复点B。显然有两个“标度”的RGB?一个允许负值,一个在[0,1]?]范围内

我正在尝试从RGB图像中采样一种颜色,并将其转换为相应的XY坐标。通过先从xyY坐标开始获取RGB图像,然后...

image matlab colors rgb color-scheme
1个回答
0
投票

我通过裁剪xyz2rgb转换的结果(即将负值等于0且大于1的值等于1)解决了这个问题,消除了归一化以产生视频帧的问题。通过此解决方案,我直接比较了RGB中的颜色,而无需再次在xyY空间中进行转换。

© www.soinside.com 2019 - 2024. All rights reserved.