MatLab:无法正确加载.mat数据集吗?

时间:2017-12-29 09:27:03

标签: matlab machine-learning conv-neural-network

我试图在mathworks的文档中遵循本指南:

Link to guide for R-CNN

我首先在本地加载一个包含数据的文件夹并将其保存为.mat。

%% Load image folder and save as .mat
clear; 
clc; 
addpath(genpath(pwd));
dataFolder = '.../pathtofolder';
if ~isdir(dataFolder)
  errorMessage = sprintf('Error: The following folder does not exist:\n%s', 
  dataFolder);
  uiwait(warndlg(errorMessage));
  return;
end
filePattern = fullfile(dataFolder, '*.tif');
pngFiles = dir(filePattern);
result = cell(1,100);
for k = 1:length(pngFiles)
 baseFileName = pngFiles(k).name;
 fullFileName = fullfile(dataFolder, baseFileName);
 fprintf(1, 'Now reading %s\n', fullFileName);
 imageArray= imread(fullFileName);
 result{k} = imageArray;
end
save fasterRCNNtestImages.mat result;

在运行上面的代码后,在另一个脚本中,我加载它:

data = load('fasterRCNNtestImages.mat');
varoaDataset = data.fasterRCNNtestImages;

我已经在指南中制作了代码,但我似乎误解了一些东西?

我想要做的是将一堆图像作为输入,然后"教授"它可以搜索图像中的某些特定对象。我也可以通过制作一个根据大小对图像中的对象进行排序的脚本来做到这一点,但我找不到可以解释如何做到这一点的源码,并且因为我的图像是.png,所以看起来有点棘手。当我以任何方式尝试其他选项时,我得到了恐怖的2d图像,当我似乎无法转换png时卡住了。到另一种格式(我的试用和错误中的.jpg)。所以CNN似乎是更好的解决方案,但现在我再次陷入困境。

1 个答案:

答案 0 :(得分:0)

要从.mat正确加载数据,请使用此选项以确保正确加载:

input_data = load('fasterRCNNtestImages.mat','result');
imshow(input_data.result{1,1})

和结果{1,1}就是一个例子。您可以在 for 循环(k = 1:length(pngFiles)中使用它来加载.mat文件后查看图像。请使用 size 或<检查您的工作区em> whos 命令。我确实运行了你在帖子中提到的the example并且它有效。你已经知道你的数据变量是结构类型,因为你定义了结果作为单元格类型,以便通过单元格访问它们。