Problem with using while
1 回表示 (過去 30 日間)
古いコメントを表示
Abdussalam Elhanashi
2019 年 10 月 31 日
回答済み: James Heselden
2019 年 10 月 31 日
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
'=='.
0 件のコメント
採用された回答
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
0 件のコメント
その他の回答 (1 件)
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
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Environment and Settings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!