How to removed the ??? Reference to non-existent field error
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Sanjay Saini
il 8 Mag 2014
Commentato: Sanjay Saini
il 9 Mag 2014
function bgs = ComputeSilhouettes_ABC2(frame,img)
global PRM; persistent BG_STATS LAST_SEQ;
if isempty(LAST_SEQ), LAST_SEQ = -1; end
if PRM.SEQ ~= LAST_SEQ fprintf('Loading background statistics '); tic;
SN = get(PRM.datasetObj,'SubjectName'); SN = SN{1};
global ABC2_DATASET_BASE_PATH;
bgModelPath = [ABC2_DATASET_BASE_PATH '/' SN ...
'/Background/Background_(%s).mat'];
for V = 1 : numel(PRM.CAMS)
% load bg_means and bg_vars
BG_STATS{V} = load(sprintf(bgModelPath,...
PRM.CAMS{V}.name),'bg_means','bg_vars');
for M = 1 : numel(BG_STATS{V}.bg_means)
ind = find(BG_STATS{V}.bg_vars{M} == 0.1);
BG_STATS{V}.bg_vars{M}(ind) = 1.0000e-003;
end
end
??? Reference to non-existent field 'bg_means'.
Error in ==> ComputeSilhouettes_ABC2 at 28 for M = 1 : numel(BG_STATS{V}.bg_means)
Error in ==> LoadFrame at 61 bgs = ComputeSilhouettes_ABC2(frame,img);
0 Commenti
Risposta accettata
Image Analyst
il 9 Mag 2014
Why are you making it a cell array? Will you need all of them after the loop has finished? If not, then get rid of the braces and have it be just a normal structure. Then use fieldnames() to see what fields it has.
3 Commenti
Image Analyst
il 9 Mag 2014
Try
thisBG = load(sprintf...............
BG_STATS{V} = thisBG;
fieldnames(thisBG);
bg_means = thisBG.bg_means;
Più risposte (1)
Roberto
il 8 Mag 2014
this only means that variable 'bg_means' doesn't exist in your file:
sprintf(bgModelPath,PRM.CAMS{V}.name)
Vedere anche
Categorie
Scopri di più su Startup and Shutdown in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!