使用FOR循环的MATLAB SVM图像分类

时间:2014-03-17 12:30:52

标签: matlab loops for-loop classification svm

我正在加载8个数据库图像并找到每个图像的平均值。在找到平均值之后,我需要从该数据库中选择要测试的图像,并且需要对其是否存在于数据库中进行分类。我只得到最后一次迭代的结果。我无法获得其他迭代的结果。谁能帮助我得到输出并告诉我哪里出错了。

代码是:

 for ix=1:8
    V='.jpg';
    ie=num2str(ix);
    Stc=strcat(ie,V);
    St=imread(Stc);
    figure(11),subplot(3,3,ix),imshow(St);
    title('original image');
    Nd(ix)=ndims(St);
    if Nd>2
        II=rgb2gray(St);
    end
    out1(ix)=mean2(St);
    end

I=uigetfile('.jpg');
I=imread(I);

out2=mean2(I);
fea=[out1;out2];
group=[1 2];
svmStruct = svmtrain(fea,group);
sample=fea;
class = svmclassify(svmStruct,sample);

if (class==1)  
    msgbox('Image is in database');
else
    msgbox('Image not in database');
end

运行此代码时出现错误:

?使用==>时出错vertcat CAT参数维度不一致。 ==>中的错误在20岁的时候 FEA = [OUT1; OUT2];

请尽早帮助我。

0 个答案:

没有答案