使用 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 的选择和图像的数量。
虽然理论上可行,但此压缩确实包含损失。
不确定这里是否是问这个问题的地方。
我对存储方面的 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 的选择和图像的数量。
虽然理论上可行,但此压缩确实包含损失。