如何在 MATLAB 或其他方式中执行颜色量化



我正在 matlab 中实现一种机器学习算法,并且正在对人眼的颜色范围进行一些读取,并被告知人眼只能感知大约 17,000 种颜色,而作为图像,我有大约 256^3 种颜色。在 matlab 或其他方式中量化图像的最佳方法是什么。另外,作为机器学习方面的一个附带问题,使用位图或jpeg哪个更好?

JPEG是一种有损格式。如果您的输入数据尚未为 JPEG,则不应使用它。即使这样,也不应重新压缩数据以避免引入更多工件。

一种非常简单但流行的颜色量化方法是 k 均值算法。你可以在Matlab中找到它。这是一个很好的起点。然而,在最近的研究中存在广泛的范式和方法。

如果你的色彩量化旨在以某种方式模仿人类的感知,我建议从sRGB空间转移到更受生物启发的空间,如LAB,其中L代表整体亮度,A代表红绿色对,B代表黄蓝色。使用LAB将使您首次尝试"照明不变"的颜色量化。网络上有许多RGB2Lab转换代码。然后我会完全丢弃L通道,除非你也想编码黑白。

最后,17000种颜色的数字主张毫无意义。男人感知7种颜色:红紫色粉红色橙色黄色绿色蓝色。

使用 k 均值聚类 (Matlab) 进行颜色缩减。

最新更新