使用 PCA 进行图像压缩

Image compression using PCA

不确定这里是否是问这个问题的地方。

我对存储方面的 PCA 有疑问 space。

如果我们要使用 PCA 来压缩图像,

我们至少要存储 1)主成分个数 2)提取平均值的numpy数组

因为原始图像数组大小和平均减去数组大小相同。所需的存储量将相同,因此压缩在哪里?

第一:使用PCA压缩图像是可能的,但不可能(没有任何意义)没有损失。基本思想是在最大化保持方差的同时最小化维数。

假设您有 n 张大小为 x*y 的图像。

然后您将计算一个大小为 x * y 的平均图像,您必须存储它。 此外,您可以使用前 k eigenvectors/principal 个组件来减少维度。因此,您可以将每个图像(根据您对要保留多少方差的选择)从 x * y 维度减少到 k 维度。 最后,您需要存储前 k eigenvectors/principal 个分量,这是一个大小为 k * (x*y).

的矩阵

总而言之:您可以将大小为 x * y 的 n 张图像减少到

a) n 个大小为 k

的数组

b) 大小为 x * y 的单个平均图像

c) 大小为 k * ( x * y) 的矩阵,包含前 k 个主成分

这是否真的会导致压缩取决于您对 k 的选择和图像的数量。

虽然理论上可行,但此压缩确实包含损失。