我可以找到单个图像的PCA吗?-MATLAB

我可以找到单个图像的PCA吗?-MATLAB,matlab,image-processing,pca,feature-extraction,Matlab,Image Processing,Pca,Feature Extraction,我正在使用PCA和SVM进行人脸识别。 我的训练集有一个400幅图像的数组,我在上面执行了PCA并将数据映射到特征空间。现在,为了进行测试,我只需要提取一幅图像的主成分,以便与之前提取的特征相匹配。但是,我使用的任何PCA算法,甚至是内置命令(princomp),我都会得到尺寸误差。因为PCA需要形成特征空间并将数据投影到该空间上,如何形成单个图像的特征空间 应使用与训练数据相同的特征空间 你有一个很好解释它的教程。以下是主要步骤: 培训: % step: 1: find the mean im

我正在使用PCA和SVM进行人脸识别。
我的训练集有一个400幅图像的数组,我在上面执行了PCA并将数据映射到特征空间。现在,为了进行测试,我只需要提取一幅图像的主成分,以便与之前提取的特征相匹配。但是,我使用的任何PCA算法,甚至是内置命令(princomp),我都会得到尺寸误差。因为PCA需要形成特征空间并将数据投影到该空间上,如何形成单个图像的特征空间

应使用与训练数据相同的特征空间

你有一个很好解释它的教程。以下是主要步骤:

培训:

% step: 1: find the mean image
mean_face = mean(images, 2);
% step 3 : calculate the eigenvectors and eigenvalues
[evectors, score, evalues] = princomp(images');
% calculate the feture vector
feature_vec = evectors' * (input_image(:) - mean_face);
测试:

% step: 1: find the mean image
mean_face = mean(images, 2);
% step 3 : calculate the eigenvectors and eigenvalues
[evectors, score, evalues] = princomp(images');
% calculate the feture vector
feature_vec = evectors' * (input_image(:) - mean_face);

正如你所看到的,在训练阶段,使用了
evectors
mean\u face

Phyrox,我不想计算相似度,我想使用主成分训练SVM。但我无法测试SVM,因为我不知道如何“将测试图像投影到已形成的特征空间”@Sid在训练阶段如何计算特征向量?请发布您的代码,这样我们可以更好地帮助您。我能够将测试图像投影到特征空间。但我现在遇到了一个更大的问题。我有一套图像“训练集”。“面1”到本征空间的投影必须标记为+1,所有其他面到本征空间的投影必须标记为-1。我不知道怎么做。任何建议都会很有帮助。@Sid:也许使用一个单独的数组,它的投影顺序相同?如果没有,用你的代码和一些示例数据发布一个新问题。我已经问了这个问题-