Can anyone help me with this error?

4 次查看(过去 30 天)
Error using matlab.io.datastore.ImageDatastore/readimage (line 36)
Error using ReadFcn @(filename)readAndPreprocessImage(filename) function handle for file
E:\IndianCulturalEventRecognition\1\1.jpg.
Undefined function 'readAndPreprocessImage' for input arguments of type 'char'.
Error in CNN_main>@(filename)readAndPreprocessImage(filename)

采纳的回答

Walter Roberson
Walter Roberson 2020-2-10
  3 个评论
Aman Swaraj
Aman Swaraj 2020-2-10
My original code:
rootFolder = fullfile( 'E:\MTECH STUFF\2ND YEAR\CBTC\IMPLEMENTATION\P3 PROJECT\CNN CODE & Support\IndianCulturalEventRecognition');
categories = {'1','2'};
imds = imageDatastore(fullfile(rootFolder, categories), 'LabelSource', 'foldernames');
tbl = countEachLabel(imds);
minSetCount = min(tbl{:,2});
imds = splitEachLabel(imds, minSetCount, 'randomize');
countEachLabel(imds);
convnet=helperImportMatConvNet('imagenet-caffe-alex.mat');
disp('CNNhas been loaded');
%imds.ReadFcn = @(filename)readAndPreprocessImage_saliency(filename);
imds.ReadFcn = @(filename)readAndPreprocessImage(filename);
[trainingSet, testSet] = splitEachLabel(imds, 0.6, 'randomize');
featureLayer1 = 'fc7';
featureLayer2= 'fc6';
trainingFeatures1 = activations(convnet, trainingSet, featureLayer1, ...
'MiniBatchSize', 32, 'OutputAs', 'columns');
trainingFeatures2 = activations(convnet, trainingSet, featureLayer2, ...
'MiniBatchSize', 31, 'OutputAs', 'columns');
% trainingFeatures3 = activations(convnet, trainingSet, featureLayer3, ...
% 'MiniBatchSize', 31, 'OutputAs', 'columns');
trainingFeatures = [trainingFeatures1;trainingFeatures2];
trainingLabels = trainingSet.Labels;
%%
testFeatures1 = activations(convnet, testSet, featureLayer1, 'MiniBatchSize',32);
testFeatures2 = activations(convnet, testSet, featureLayer2, 'MiniBatchSize',32);
%testFeatures3 = activations(convnet, testSet, featureLayer3, 'MiniBatchSize',32);
%%
testFeature = [testFeatures1,testFeatures2];
classifier = fitcecoc(trainingFeatures,trainingLabels,'Learners','Linear','Coding','onevsall','ObservationsIn','columns');
predictedLabels = predict(classifier, testFeature);
testLabels = testSet.Labels;
confMat = confusionmat(testLabels, predictedLabels);
confMat2 = bsxfun(@rdivide,confMat,sum(confMat,2));
Aman Swaraj
Aman Swaraj 2020-2-10
Thanks, now its working, the problem was with the path.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by