RGBA颜色空间中的颜色相似性/距离
如何计算RGBA色彩空间中两种颜色之间的相似度? (当然背景颜色未知)
我需要通过为图像中的每个像素找到最佳调色板条目,将RGBA图像重新映射到RGBA颜色的调色板。
在RGB颜色空间中,可以假设最相似的颜色是具有最小欧氏距离的颜色。然而,这种方法在RGBA中不起作用,例如,欧几里德距离
rgba(0,0,0,0)
到rgba(0,0,0,50%)
的距离小于rgba(100%,100%,100%,1%)
,但后者看起来要好得多。
我正在使用预乘的RGBA色彩空间:
r = r×a
g = g×a
b = b×a
我尝试过这个公式(编辑:请参阅下面的答案以获得更好的公式):
Δr² + Δg² + Δb² + 3 × Δa²
但它看起来不是最佳的 - 在具有半透明渐变的图像中,它会找到错误的颜色,导致不连续/锐边。不透明颜色和alpha之间的线性比例看似腥。
什么是最佳配方?
*)为了简化这个问题,我忽略了误差扩散,伽玛和心理视觉色彩空间。
略有关联:如果你想在这个非欧几里德RGBA空间中找到最接近的颜色,vp-tree是最好的。
没有找到相关结果
已邀请:
5 个回复
孝铜差
)时,与“白色”和“黑色”混合是微不足道的。 完整的公式是:
C源包括SSE2实现。
倪蕊悲潍
素汞读
然后在R,G和B上总结这些。
嗓瑰
时,问题与RGB空间类似 当
时,问题只出在alpha 1-dim空间 因此,满足该公式的公式(与您所述的公式非常相似)是:
或
在任何情况下,它可能会像
如果我是你,我会尝试用各种RGBA对和各种背景颜色来模拟它,以找到最好的
功能。不是很数学,但会给你一个足够接近的答案
浅镁