通过PCA降低2D图像的尺寸

时间:2015-02-06 06:33:48

标签: matlab image-processing dimensionality-reduction

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

我是否需要首先将修补程序(100x50)转换为向量(5000x1),然后应用PCA来减少维度,或者我可以直接在修补程序(100x50)上应用PCA进行降维缩小尺寸让我们说2x50

3 个答案:

答案 0 :(得分:3)

您可以直接应用2D-PCA。至少它存在并且应该比1D-PCA表现更好(减少)。

2004年的一篇被高度引用的研究论文: Yang,J。等,2004。二维PCA:基于外观的面部表征和识别的新方法。 IEEE Transactions on Pattern Analysis and Machine Intelligence,26(1),pp.131-137。 Source

不幸的是我不知道Matlab的实现。

答案 1 :(得分:1)

尺寸缩减为R^n -> R^m其中n>m因此根据您的文字,我会得到您的意思:

  1. 分辨率调整大小

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

    • 消除无关紧要的数据
  3. 对于图像大小调整或数据缩减,有很多方法可以做到:

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

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

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

      • 不能用于预定的目标分辨率,因为
      • 它提取大小取决于内容的重要数据
    4. 所以答案实际上取决于你需要达到的目的和目的

答案 2 :(得分:0)

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

使用Matlab调用您的补丁X,您可以通过调用X(:)轻松完成此操作,而不必使用reshape