将图像颜色空间从RGB转换为对手的颜色

时间:2018-07-24 20:23:17

标签: image-processing computer-vision

我发现formulas给出了对手色彩空间的定义:

O1 = 1/sqrt(2) * (R - G)
O2 = 1/sqrt(6) * (R + G - 2B)
O3 = 1/sqrt(3) * (R + G + B)

在这些公式中,R,G,B符号是RGB空间中原始图像的通道的值。

以RGB颜色空间表示的原始图像是典型的uint8图像,其值在[0,255]范围内。通过将图像投射到float中来进行计算。

如何将生成的图像(尤其是O1和O2通道)缩放到相同的范围[0,255],并以uint8类型表示?

缩放后,是否可以从对手颜色空间返回到具有uint8类型表示图像的RGB空间?

1 个答案:

答案 0 :(得分:0)

好吧,让我们看一下O1 ...如果R = 255和G = 0,则(R-G)的最大可能值为255。如果R = 0和G = 255,则(R-G)的最小值可能为-255。

所以

-255/root2 <= O1 <= 255/root2

如果我们希望在0到255的范围内,我们需要添加255 / root2,这将使其大​​于或等于零且小于510 / root2,因此我们需要乘以255 * root2 / 510。

现在O2 ...(R + G-2B)的最大值为510,最小值为-510。所以

-510/root6 <= O2 <= 510/root6

因此,将510 / root6加起来,它将在0到1020 / root6之间,因此我们需要乘以255 * root6 / 1020。

您可以执行O3:-)