在 C# 中,如何将图像中每个像素的颜色设置为与 RGB 格式(无 alpha)颜色列表最接近的颜色匹配,该格式可以是任意长度?
它基本上是在创建一个自定义的 BitmapPalette,但由于你不能这样做(相信我,我已经为此尝试了一切可能),我需要一个替代方案。
有谁知道这样做的方法?
男孩...我希望你热爱数学...
这是一个很难回答的问题。要确定两种颜色之间的“拟合紧密度”,您首先必须了解您正在使用的颜色空间/颜色模型。RGB 颜色模型(不包括 Alpha 通道)本质上是欧几里得模型:每种颜色映射到 3D 空间中的一个点。因此,两种颜色 C1 和 C2 之间的假定距离为
距离 = SQRT( (C1红色- C2红色) 2 + (C1绿色- C2绿色) 2 + (C1蓝色- C2蓝色) 2 )
WRT“正常”的人类视觉感知,这不一定是正确的。考虑到这一点会变得更加复杂。
尝试将这两篇论文作为起点:
颜色常见问题解答还提供了许多其他颜色空间资源的链接。
更多链接请访问http://www.golden-gryphon.com/software/misc/color-links.html
这是一篇关于颜色差异的论文,可能也有帮助:http://www.axiphos.com/Reports/ColorDifferences.pdf
Bruce Lindbloom 的网站上也有很多东西,包括色差计算器,它在 CIE 颜色空间(提供距离计算)中工作。
| 归档时间: |
|
| 查看次数: |
1926 次 |
| 最近记录: |