使用imageDatastore创建数据集

时间:2019-10-14 04:50:00

标签: matlab image-processing

我想创建自己的数据集,例如CIFAR-10,但不使用RGB值,而使用图像的CEDD特征向量。我正在创建一个imageDatastore并使用以下代码读取图像和标签:

imageFolder = fullfile('G:\9th Semester\Project - 2\myDataset');
imds = imageDatastore(imageFolder,'LabelSource', 'foldernames', 'IncludeSubfolders',true);
[trainingSet , testingSet] = splitEachLabel(imds , 0.8 , 'randomize');
trainingSet = shuffle(trainingSet);
testingSet = shuffle(testingSet);
data = [];
labels = char.empty(0,10);
cedd = [];
for i=1:size(trainingSet.Files)
    image = readimage(trainingSet,i);
    cedd = CEDD(image);
    zerosCount = 0 ;
    for j=1:144
        if cedd(j) == 0
            zerosCount=zerosCount + 1;
        end
    end
    if zerosCount ~= 144
        data(i , :) = cedd;
        labels(i ,: ) = trainingSet.Labels(i);
    end
end
save('train.mat' , 'data' , 'labels');

但是给我这个错误:

  

无法执行分配,因为左侧的尺寸为1×10,右侧的尺寸为1×3。   数据集错误(第20行)           标签(i,:)= trainingSet.Labels(i);

任何帮助将不胜感激!

0 个答案:

没有答案