使用PCA进行图像压缩

时间:2016-07-24 13:11:23

标签: pca

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

我对PCA的存储空间有疑问。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

假设您有n张尺寸为x * y的图像。

然后,您将计算一个大小为x * y的平均图像,您必须存储该图像。 此外,您可以使用前k个特征向量/主成分来减少维数。因此,您可以从x * y维度到k维度减少每个图像(基于您选择保留多少方差)。 最后,您需要存储前k个特征向量/主成分,这是一个大小为k *(x * y)的矩阵。

总结:您可以将大小为x * y的n张图像缩小为

a)n个大小为k的数组

b)尺寸为x * y的单个平均图像

c)包含前k个主成分

的大小为k *(x * y)的矩阵

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

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