我有数学和机器学习的背景,但我在图像压缩方面是个新手。另一种方式是,我想以最优的方式压缩图像,只需使用查找表即可。这意味着,给定一个具有N个唯一值的原始图像,将其更改为M个唯一值为M
-Given所有像素强度的直方图h(x)
-Given新值M的唯一个数
定义使总误差最小的一组新M值{X_new}。我试着定义损失函数并求导数,但它出现了一些argmax运算,我不知道如何推导它们。然而,我的直觉告诉我,它应该存在一个封闭的公式.
例如:假设我们有一个只有10个像素的图像,其值为{1,1,1,1,2,2,2,2,2,3,3}。我们最初使用的是N=3,系统要求我们选择使误差最小的M=2唯一值。很明显,我们必须选择两个最常见的图像,因此{X_new}={1,2},新图像将被“压缩”为{1,1,1,1,2,2,2,2,2,2,2,2}。如果要求我们选择M=1,我们将选择{X_new}=2以最小化错误。
谢谢!
发布于 2021-08-06 20:01:21
这称为颜色量化或调色板。这本质上是一个聚类问题,通常在3DRGB空间中。每个簇成为下采样图像中的一种颜色。GIF和PNG图像格式都支持调色板。
有很多clustering algorithms,它们背后有很多研究。为此,我首先尝试k-means和DBSCAN。
请注意,调色板只是有效图像压缩方法的一部分。您还需要利用像素的空间相关性(通常使用2-D空间频率分析,如离散余弦变换或小波变换),以及利用人眼在颜色辨别方面的较低分辨率(相对于灰度锐度)。
除非您想开始几年的研究来改进最先进的技术,否则我建议您使用现有的图像压缩算法和格式。
https://stackoverflow.com/questions/68681795
复制相似问题