Problem with using while

1 次查看(过去 30 天)
Hi Guys
have a problem with using while and give me an error when i run matlab for the code attached named Evaluationthedetector
Kindly looking for your assistance
Regards
load('gTruth.mat')
smokedetection = selectLabels(gTruth,'cat');
if ~isfolder(fullfile('EvaluationData'))
mkdir EvaluationData
addpath('EvaluationData');
evaluationData = objectDetectorTrainingData(gTruth,...
'SamplingFactor',10,'WriteLocation','EvaluationData');
end
imds = imageDatastore(fullfile('EvaluationData'));
numImages = height(evaluationData);
result(numImages,:) = struct('Boxes',[],'Scores',[]);
while i = 1:numImages
% Read Image
I = readimage(imds,numImages);
% Detect the object of interest
[bboxes, scores] = detect(detector,I,'MiniBatchSize', 32);
T = 0.54; % Define threshold here
idx = scores >= T;
% if there are 2 or more objects detected, show them
if nnz(idx) >= 2
% Retrieve those scores that surpassed the threshold
s = scores(idx);
% Do the same for the labels as well
bboxes = bboxes(idx, :); % This logic doesn't change
% Store result
result(i).Boxes = bboxes;
result(i).Scores = scores;
end
end
% Convert structure to table
results = struct2table(result);
Error: File: Evaluationthedetector.m Line: 14 Column: 9
Incorrect use of '=' operator. To assign a value to a variable, use '='. To compare values for equality, use
'=='.

采纳的回答

James Heselden
James Heselden 2019-10-31
You are using a while loop where you should be using a for loop.
% Swap out
while i = 1:numImages
...
end
% to
for i = 1:numImages
...
end
Regards
James

更多回答(1 个)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2019-10-31
while .. end is not used correcly, use for ... end instead
for i = 1:numImages
% Read Image
I = readimage(imds,numImages);
% Detect the object of interest
[bboxes, scores] = detect(detector,I,'MiniBatchSize', 32);
T = 0.54; % Define threshold here
idx = scores >= T;
% if there are 2 or more objects detected, show them
if nnz(idx) >= 2
% Retrieve those scores that surpassed the threshold
s = scores(idx);
% Do the same for the labels as well
bboxes = bboxes(idx, :); % This logic doesn't change
% Store result
result(i).Boxes = bboxes;
result(i).Scores = scores;
end
end
% Convert structure to table

类别

Help CenterFile Exchange 中查找有关 Environment and Settings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by