MatLab 中的 PCA 究竟返回了什么?
What exactly is returned from PCA in MatLab?
I = double(image1Cropped);
X = reshape(I,size(I,1)*size(I,2),3 );
coeff1 = pca(X);
以上3行代码到底发生了什么?
为什么在进入重塑之前将图像转换为双重图像?
重塑的目的是什么?
pca(X)
返回了什么?
我可以使用 coeff1
来比较图像(例如,比较人脸)吗?
从 PCA 返回主成分。当然。
查看文档或任何在线课程以了解什么是 PCA。
由于 PCA 是一种数学工具,它需要浮点数据才能工作,这就是为什么第一行有一个 double
,它正在将数据(很可能是 uint8
)转换为浮点数据。
reshape
正在将您的图像重塑为 size(I,1)*size(I,2),3
的巨大矩阵,因此每个 X(ii,:)
的长度都是 3。
我的猜测是图像是 RGB 图像,并且此代码试图获取图像的 "principal colours"。代码所做的是将数据转换为具有 3 个值的点,红色、绿色和蓝色(与正常的 XYZ 相对),然后获取图像的主要成分。主要成分将是图像中的 "the principal 3 Colors (conbinations of RGB)"。
如果您在 Google 上搜索 "PCA of an RGB image",您会找到很多 how/why 的信息来执行此操作。
I = double(image1Cropped);
X = reshape(I,size(I,1)*size(I,2),3 );
coeff1 = pca(X);
以上3行代码到底发生了什么?
为什么在进入重塑之前将图像转换为双重图像?
重塑的目的是什么?
pca(X)
返回了什么?
我可以使用 coeff1
来比较图像(例如,比较人脸)吗?
从 PCA 返回主成分。当然。
查看文档或任何在线课程以了解什么是 PCA。
由于 PCA 是一种数学工具,它需要浮点数据才能工作,这就是为什么第一行有一个 double
,它正在将数据(很可能是 uint8
)转换为浮点数据。
reshape
正在将您的图像重塑为 size(I,1)*size(I,2),3
的巨大矩阵,因此每个 X(ii,:)
的长度都是 3。
我的猜测是图像是 RGB 图像,并且此代码试图获取图像的 "principal colours"。代码所做的是将数据转换为具有 3 个值的点,红色、绿色和蓝色(与正常的 XYZ 相对),然后获取图像的主要成分。主要成分将是图像中的 "the principal 3 Colors (conbinations of RGB)"。
如果您在 Google 上搜索 "PCA of an RGB image",您会找到很多 how/why 的信息来执行此操作。