我找到了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空间?
发布于 2018-07-25 06:22:58
让我们来看看O1..。如果为R=255和G=0,则(R-G)的最大可能值为255。如果为R=0和G=255,则(R-G)的最小可能值为-255。
所以
-255/root2 <= O1 <= 255/root2如果我们希望它在0到255的范围内,我们需要添加255/root2,这将使它大于或等于0,小于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 :-)
https://stackoverflow.com/questions/51506953
复制相似问题