Error using imread>get_full_filename
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ali Nawaz
am 4 Okt. 2020
Kommentiert: Image Analyst
am 5 Okt. 2020
I'm running the below code for my algorithm. Everything is working fine but imread() is giving an error in a loop. If I run the command separately it gives the output but in the loop it's showing an error. Could you please help me out?
Trainingpath = 'Destination Foler path';
imagesets = imageDatastore(Trainingpath,'IncludeSubfolders',true,'LabelSource',...
'foldernames');
[traindata,validation] = splitEachLabel(imagesets,0.50,'randomize');
extracted_features = bagOfFeatures(traindata);
Sclassifier = trainImageCategoryClassifier(traindata,extracted_features);
ConfusMatrix = evaluate(Sclassifier,validation);
mean(diag(ConfusMatrix));
imagename = uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' });
image = imread(imagename); %?????????????????????
[Label, score] = predict(Sclassifier,image);
prediction = Sclassifier.Labels(Label);
%fprintf(imagename, prediction);
imagename, prediction
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 4 Okt. 2020
image is the name of a built-in function. Do NOT use it as the name of your variable. Try this:
% Have user browse for a file, from a specified "starting folder."
% For convenience in browsing, set a starting folder from which to browse.
startingFolder = Trainingpath; % or 'C:\wherever';
if ~isfolder(startingFolder)
% If that folder doesn't exist, just start in the current folder.
startingFolder = pwd;
end
% Get the name of the file that the user wants to use.
defaultFileName = fullfile(startingFolder, '*.*');
[baseFileName, folder] = uigetfile(defaultFileName, 'Select a file');
if baseFileName == 0
% User clicked the Cancel button.
break; % Exit loop
end
fullFileName = fullfile(folder, baseFileName);
fprintf('Reading in "%s"\n', fullFileName);
rgbImage = imread(fullFileName);
fprintf('Predicting "%s"\n', fullFileName);
[Label, score] = predict(Sclassifier, rgbImage);
2 Kommentare
Image Analyst
am 5 Okt. 2020
For any training situation, you have 3 sets of images:
- training set that you use to train the model. The training set has known, predetermined classes.
- validation that you use to test the model you trained. The validation set has known, predetermined classes.
- test set. The test set is your actual data. You don't know the answer for these images, and are hoping your algorithm will tell you accurately what the answer is.
Of course for 1 and 2, you KNOW whether your algorithm predicted the right answer or not. For 3 (test set) you don't know for certain, but you have a belief that it got it right at a percentage that you get from running the validation set through your algorithm.
I'm not sure which set your "selected image" falls into, 2 or 3. But the answer is as I described in the last paragraph.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Communications Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!