How to removed the ??? Reference to non-existent field error
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sanjay Saini
le 8 Mai 2014
Commenté : Sanjay Saini
le 9 Mai 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 commentaires
Réponse acceptée
Image Analyst
le 9 Mai 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 commentaires
Image Analyst
le 9 Mai 2014
Try
thisBG = load(sprintf...............
BG_STATS{V} = thisBG;
fieldnames(thisBG);
bg_means = thisBG.bg_means;
Plus de réponses (1)
Roberto
le 8 Mai 2014
this only means that variable 'bg_means' doesn't exist in your file:
sprintf(bgModelPath,PRM.CAMS{V}.name)
Voir également
Catégories
En savoir plus sur Startup and Shutdown dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!