显示分类器的查询图像

时间:2016-03-23 21:23:59

标签: matlab

所以我使用以下代码进行图像识别。

一切正常,直到我尝试在分类器中显示匹配图像的查询图像。

基本上,我希望在匹配的图像旁边显示我想要识别的图像......但是它会显示查询图像和空白图形图,底部显示错误。我该如何展示?

此外,我的原始图像的trainingSet文件夹包含标记为0-9的子文件夹。所以预测的代码行,NairaLabel实际上预测将我的查询图像与作为变量的正确文件夹相匹配,但我希望它显示出来。

 [imname,impath]=uigetfile({'*.jpeg;*.jpg;*.png'});
  notes=imread([impath,'/',imname]);

 %preprocessing
 %resize image
 LoadIm;

 % Extract HOG features and HOG visualization

 [hog_4x4, vis4x4] = extractHOGFeatures(I,'CellSize',[4 4]);

 cellSize = [4 4];
 hogFeatureSize = length(hog_4x4);

 %% Test Images from Test Set 

 NAIRALabel = predict(classifier,hog_4x4);

V%% Map back to training set to find identity 
       personIndex{digit} = trainingSet(i).Description;

 %% 
 booleanIndex = strcmp(NAIRALabel, personIndex);

 integerIndex = find(booleanIndex);

  subplot(1,2,1);imshow(notes);title('Query Face');
   subplot(1,2,2);imshow(read(trainingSet(integerIndex),1));title('Matched Class');

错误:

  

使用imageSet / read时出错(第307行)
  imageSet对象数组不支持此方法。

     

hogFeat出错(第24行)   subplot(1,2,2); imshow(read(trainingSet(integerIndex),1)); title('Matched Class');

 %%%%%%%% updated %%%%%%%

     %  NAIRALabel predicts the right folder which the image is located. 

 %so I did something like this:
 if NAIRALabel = '1';
     imshow(read(image, 1); title(valid  note);
 end

 %But I get this error:

  The expression to the left of the equals sign is not a valid target for an assignment.

我有办法让这种方法有效吗?

1 个答案:

答案 0 :(得分:0)

问题是因为integerIndex不是标量。它可以是多元素数组,也可以是空数组。我认为它是空的,因为你无法找到匹配。

因此,当您索引到trainingSet(使用integerIndex)时,您将获得一个非标量imageset对象(如错误消息所述)。