彩色抖动

彩色抖动

Hacker News 摘要

原标题:Dithering in Colour

这篇文章《彩色抖动》由Niklas Oberhuber撰写,发布于2025年3月8日,介绍了在计算机图形学中实现彩色抖动的方法。作者在阅读了一篇关于抖动的文章后,决定尝试实现阿特金森抖动,并支持颜色调色板和正确的线性化处理。

文章首先说明了如何将图像抖动应用于任意调色板,而不仅仅是黑白调色板。传统方法通常会将输入图像转换为灰度后再进行抖动,但作者主张可以直接使用任何颜色调色板。通过比较像素与阈值的标量值,确定是否将颜色设为黑或白,然而在彩色图像处理中,需要同时考虑所有颜色通道(红、绿、蓝)。

接着,文章指出在抖动中需计算每种颜色与像素颜色之间的欧几里得距离,积累每个颜色通道的错误,类似单色错误扩散抖动的方法。同时,作者提到在处理图像之前,需要进行线性化操作,以避免输出过于亮的问题,因为图像通常以sRGB颜色空间存储,且为伽马编码(gamma-encoded)。未线性化会导致在比较亮度时产生错误。

作者提供了线性化的好资料推荐,并强调在人眼感知中,绿色的亮度通常被感知得比红色更亮。文中给出了调整每个颜色通道权重,以保留感知亮度的公式。作者警告,抖动时若不遵循这些原则,可能会导致图像失真。

此外,要注意一些常见的陷阱,例如缩放图像时可能会改变抖动效果,尤其是使用非线性插值时,以及显示器的伽马设置不正确可能会影响效果。作者比较了阿特金森抖动与Floyd-Steinberg抖动的效果,指出阿特金森抖动在扩散错误时的不足可能使图像看上去更暗。

最后,文章总结道,在进行抖动之前一定要线性化图像颜色空间,选择调色板中的最接近颜色时要考虑感知亮度,并在导出结果前应用伽马校正。此外,作者鼓励与他联系,分享更多关于颜色和抖动的知识。


原文:https://obrhubr.org/dithering-in-colour

评论:https://news.ycombinator.com/item?id=43315029

Report Page