如何使用神经网络保存筛选特征向量进行分类

时间:2011-04-05 18:35:39

标签: matlab sift mat-file

http://www.cs.ubc.ca/~lowe/keypoints/找到了SIFT功能的Matlab实现。在stackoverflow的帮助下。我想将功能保存到.mat文件。特征是圆度,颜色,二进制图像中没有白色像素数和筛选功能。对于筛选功能,我在上面的代码中使用了描述符{[siftImage,descriptors,locs] = sift(filteredImg)}所以我的特征向量现在是FeaturesTest = [roundness,nWhite,color,descriptors,outputs];使用save('features.mat','Features')将其保存到.mat文件时;它给出了一个错误。
错误是这样的。

  

???使用==>时出错horzcat CAT   参数维度不是   是一致的。 ==>中的错误   user_interface> 336处的extract_features   FeaturesTest = [圆度,nWhite,   颜色,描述符,输出];

据我所知,我认为问题是描述符特征向量大小。它是< 14x128 double>。这个功能有14行,其他行只有一行在.mat文件中。如何将此特征向量与我的其他功能一起保存到.mat文件中?

等待回复。提前谢谢。

1 个答案:

答案 0 :(得分:2)

根据我的理解,您似乎试图将变量roundnessnWhitecolordescriptorsoutputs放入单个向量,所有变量都有唯一的维度。

使用单元格或结构来存储数据可能会更好。要将数据存储在单元格中,只需将方括号更改为花括号,如下所示:

FeaturesTest = {roundness, nWhite, color, descriptors, outputs};

但是,这需要您记住将数据从.mat文件中拉出时哪些单元格。结构可能对您更有用:

FeaturesTest.roundness = roundness;
FeaturesTest.nWhite = nWhite;
FeaturesTest.color = color;
FeaturesTest.descriptors = descriptors;
FeaturesTest.outputs = outputs;

然后,当您加载.mat文件时,所有数据都将包含在该结构中,您可以轻松地引用该结构。如果您只需要查看颜色变量,则可以键入FeaturesTest.color,按Enter键,然后显示变量。或者,您可以通过在工作区窗口中双击来浏览结构。

或者,你可以像这样使用save命令:

save(filename,roundness, nWhite, color, descriptors, outputs)

希望这有帮助。