【问题标题】:Problem with Principal Component Analysis主成分分析问题
【发布时间】:2011-10-25 22:07:14
【问题描述】:

我不确定这是不是正确的地方,但我走了:

我有一个包含 300 张高分辨率图片的数据库。我想在这个数据库上计算 PCA,到目前为止,我所做的是: - 将每个图像重塑为单列向量 - 创建我所有数据的矩阵 (500x300) - 计算平均列并将其减去我的矩阵,这给了我 X - 计算相关性 C = X'X (300x300) - 找到 C 的特征向量 V 和特征值 D。 - PCA 矩阵由 XV*D^-1/ 给出2,其中每一列都是一个主成分

这很棒,给了我正确的组件。

现在我正在做的是在同一个数据库上执行相同的 PCA,只是图像的分辨率较低。

这是我的结果,左边是低分辨率,右边是高分辨率。你有没有看到它们中的大多数是相似的,但有些图像不一样(我圈出来的那些)

有什么办法可以解释吗?我需要我的算法具有相同的图像,但一组是高分辨率的,另一组是低分辨率的,我怎样才能做到这一点?

谢谢

【问题讨论】:

    标签: math matlab image-processing linear-algebra pca


    【解决方案1】:

    您使用的过滤器很可能对某些组件做了一两件事。毕竟,较低分辨率的图像不包含较高的频率,这也有助于您获得哪些组件。如果这些图像的分量权重 (lambdas) 很小,也很有可能出错。

    我猜您的组件图像是按重量排序的。如果是,我会尝试使用不同的预下采样滤波器,看看它是否会给出不同的结果(本质上是通过不同的方式获得较低分辨率的图像)。有可能出现不同的分量在该滤波器的过渡带中具有大量频率内容。看起来用红色圈出的图像几乎是彼此完美的反转。过滤器会导致这样的事情。

    如果您的图片没有按重量排序,如果您圈出的图片重量很小,我不会感到惊讶,这可能只是计算精度错误或类似的东西。无论如何,我们可能需要更多关于如何下采样、如何在显示图像之前对图像进行排序的信息。此外,我不希望所有图像都非常相似,因为您基本上摆脱了相当多的频率分量。我很确定这与您将图像拉伸成向量以计算 PCA 的事实没有任何关系,但尝试将它们拉伸到不同的方向(取列而不是行,反之亦然)和试试看。如果它改变了结果,那么也许您可能想尝试以不同的方式执行 PCA,但不确定如何。

    【讨论】:

    • 谢谢。无论如何,我只需将高分辨率 PCA 结果调整为较低的图像分辨率即可使其正常工作。通过这种方式,我确信这两种解决方案的基础完全相同
    猜你喜欢
    • 1970-01-01
    • 2013-08-24
    • 2014-04-08
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多