2

我想减小 2D 图像的尺寸。我有大小的图像补丁,100x50我想减少这些补丁的尺寸。

我是否需要先将补丁(100x50)转换为向量(5000x1),然后应用 PCA 来减少维度,或者我可以直接应用 PCA 来减少补丁上(100x50)的维度并减少维度,比如说2x50

4

3 回答 3

3

您可以直接应用 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 的实现。

于 2015-02-06T10:22:37.443 回答
1

降维是R^n -> R^m根据n>m您的文字,我得到的印象是您的意思是:

  1. 分辨率调整大小

    • 改变目标分辨率
  2. 数据缩减

    • 消除无关紧要的数据

对于图像大小调整或数据缩减,有很多方法可以做到:

  1. 线性/双线性/立方/...过滤

    • 适用于可视化数据大小调整(不适用于数据缩减)
  2. 基于频域 DFFT/DCT/DST 的数据缩减

    • 可用于更改分辨率而不会丢失大量数据
    • 通过转换到频域
    • (可选)去除噪音或无关紧要的数据(如 JPEG 压缩)
    • 以所需的分辨率转换回空间域
    • 当您停留在频域时,也可用于数据缩减
    • 并仅使用重要频率(高振幅..)
  3. 主成分分析

    • 不能用于预定的目标分辨率,因为
    • 它提取大小取决于内容的重要数据

所以答案真的取决于你到底需要达到什么目标以及目的是什么

于 2015-02-06T08:54:15.913 回答
0

PCA 将向量空间中的一个点作为输入,并将其投影到子空间中。以这种方式表达,那么很容易记住您需要将补丁大小调整为矢量。

使用 Matlab,调用你的补丁X,你可以通过调用轻松地做到这一点X(:),你不必乱用reshape.

于 2015-02-06T08:48:18.357 回答