The code is unreachable.
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
segsAll = cell(length(frs),1);
This line of code is unreachable I don't know why. I have supplied the image properly and also tried to display it and it got displayed. But error is still there, something wrong with the if statement.
if true % code
%Define our movie and scale factor
cd demo_people;
addpath(genpath('.'));
frs = 1:201;
movieS = 'ims/%.8d.jpg';
imscale = .6;
%First step; run stylized pose detector on each frame
INIT_DETECT = 0;
if INIT_DETECT
%First, run our stylized person detector
segsAll = cell(length(frs),1);
%for fr = frs,
for fr = 167
fr
%Read in image, scaling it so torso is roughly 50 pixels long
imOrig = imread(sprintf(movieS,fr));
%For this sequence, hard-code in we're looking for some-one
% walking to the right with a torso 50 pixels high
im = imresize(imOrig(:,end:-1:1,:),imscale,'bilinear');
% Because the walking detector involves sampling, may have to
% do this multiple times
% and take best-scoring one
segs = findWalkingPerson(im);
%Flip and re-size to regular image
[segs.x,segs.u] = deal(size(im,2) - segs.x + 1,-segs.u);
[segs.x,segs.y,segs.len,segs.w] = ...
deal(segs.x/imscale,segs.y/imscale,segs.len/imscale,segs.w/imscale);
%Build an appearance model for each limbs and evaluate how
% good we are
modelSegs = buildLimbModelLin({imOrig},{segs});
%Sum up the fraction of missclassified pixels, downweighting
% the upper arm by .5
segs.cost = [1 .5 1 1 1 1 1 1] * modelSegs.err;
segsAll{fr} = segs;
end
%Take the best scoring one
costs = repmat(100,length(frs),1);
for i = 1:length(frs),
if ~isempty(segsAll{i}),
costs(i) = segsAll{i}.cost;
end
end
[dummy,fr] = min(costs);
%Build a quadratic logistic regression model for each limb
im = imread(sprintf(movieS,fr));
modelSegs = buildLimbModelQuad({im},segsAll(fr));
save walkingDetections segsAll modelSegs;
else
load walkingDetections;
end
%Track by detecting with learned appearance model
trackSegs = cell(length(frs),1);
for fr = frs,
fr
clf;
im = imread(sprintf(movieS,fr));
%Can search over image and different scales if desired
im = imresize(im,imscale,'bilinear');
subplot(231);
imshow(im); title(sprintf('Frame %d',fr));
%Sample body poses by computing the posterior with the
% sum-product algorithm
[pts,cost] = findGeneralPerson(im,modelSegs);
subplot(235);
showPersonPts(size(im),pts);
title('Posterior');
%Find the modes in the samples
trackSegs{fr} = findModePose(pts);
subplot(236);
showsegIm(im,trackSegs{fr});
title('Mode in posterior');
drawnow;
end
%Show the track
clf;
set(gcf,'doublebuffer','on');
for fr = frs,
im = imread(sprintf(movieS,fr));
%Can search over image and different scales if desired
im = imresize(im,imscale);
showsegIm(im,trackSegs{fr});
drawnow;
end
end
1 Commento
matt dash
il 9 Nov 2014
You should edit your question to properly format the code. It is very difficult to read as it is.
Risposta accettata
per isakson
il 9 Nov 2014
INIT_DETECT is always false, thus the first branch of the if-statement cannot be reached.
Più risposte (1)
Image Analyst
il 9 Nov 2014
Change the code to:
INIT_DETECT = true;
if INIT_DETECT
2 Commenti
Image Analyst
il 9 Nov 2014
samir's "Answer" moved here since it shoudl really be a "Comment" to me rather than an independent "Answer" to his original question:
I tried running the code with INIT_DETECT =true. I am getting he following error:
Warning: Escape sequence 'U' is not valid. See 'help sprintf' for valid escape sequences.
> In baseballDo at 18
Error using imread (line 366)
Can't open file "C:" for reading;
you may not have read permission.
Error in baseballDo (line 18)
imOrig = imread(sprintf(movieS,fr));
Note: I changed the path of input image file to my local machine path.
Image Analyst
il 9 Nov 2014
Try this:
% Create full file name of file in the ims subfolder
% of the current folder.
movieS = sprintf('%s/ims/%.8d.jpg', pwd, fr);
% Make sure it exists. Warn if it does not exist.
if ~exist(movieS, 'file')
warningMessage = sprintf('Image file not found:\n%s', movieS);
uiwait(warndlg(warningMessage));
continue;
end
im = imread(movieS);
Vedere anche
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!