我想减小 2D 图像的尺寸。我有大小的图像补丁,100x50
我想减少这些补丁的尺寸。
我是否需要先将补丁(100x50)
转换为向量(5000x1)
,然后应用 PCA 来减少维度,或者我可以直接应用 PCA 来减少补丁上(100x50)
的维度并减少维度,比如说2x50
?
我想减小 2D 图像的尺寸。我有大小的图像补丁,100x50
我想减少这些补丁的尺寸。
我是否需要先将补丁(100x50)
转换为向量(5000x1)
,然后应用 PCA 来减少维度,或者我可以直接应用 PCA 来减少补丁上(100x50)
的维度并减少维度,比如说2x50
?
您可以直接应用 2D-PCA。至少它存在并且应该比 1D-PCA 表现更好(减少方面)。
2004 年关于此问题的一篇被高度引用的研究论文:Yang, J. et al., 2004. 二维 PCA:基于外观的人脸表示和识别的新方法。IEEE Transactions on Pattern Analysis and Machine Intelligence, 26(1), pp.131-137。 资源
不幸的是,我不知道 Matlab 的实现。
降维是R^n -> R^m
根据n>m
您的文字,我得到的印象是您的意思是:
分辨率调整大小
数据缩减
对于图像大小调整或数据缩减,有很多方法可以做到:
线性/双线性/立方/...过滤
基于频域 DFFT/DCT/DST 的数据缩减
主成分分析
所以答案真的取决于你到底需要达到什么目标以及目的是什么
PCA 将向量空间中的一个点作为输入,并将其投影到子空间中。以这种方式表达,那么很容易记住您需要将补丁大小调整为矢量。
使用 Matlab,调用你的补丁X
,你可以通过调用轻松地做到这一点X(:)
,你不必乱用reshape
.