【问题标题】:What exactly is returned from PCA in MatLab?MatLab 中的 PCA 究竟返回了什么?
【发布时间】:2015-07-12 17:15:42
【问题描述】:
I = double(image1Cropped);
X = reshape(I,size(I,1)*size(I,2),3 );
coeff1 = pca(X);

以上 3 行代码到底发生了什么? 为什么在转换为重塑之前将图像转换为双重? 重塑的目的是什么? 从pca(X) 返回什么? 我可以使用coeff1 来比较图像(例如比较人脸)吗?

【问题讨论】:

标签: matlab pca


【解决方案1】:

从 PCA 返回主成分。当然。

查看文档或任何在线课程以了解 PCA 是什么。

由于 PCA 是一种数学工具,它需要浮点数据才能工作,这就是为什么第一行有一个 double,它将数据(很可能是 uint8)转换为浮点数据。

reshape 正在将您的图像重塑为 size(I,1)*size(I,2),3 的巨大矩阵,因此每个 X(ii,:) 的长度为 3。

我的猜测是图像是 RGB 图像,并且此代码试图获取图像的“主要颜色”。代码所做的是将您的数据转换为 3 个值的点,即红色、绿色和蓝色(与正常的 XYZ 相对),然后获取图像的主要成分。主要成分将是图像中的“主要 3 种颜色(RGB 的组合)”。

如果您在 Google 上搜索“RGB 图像的 PCA”,您会发现很多关于如何/为什么这样做的信息。

【讨论】:

    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 2017-05-06
    • 2016-04-21
    • 2017-02-11
    相关资源
    最近更新 更多