Cannot find an exact (case-sensitive) match for 'getFrame' ?
8 views (last 30 days)
Show older comments
LEKHCHINE Somia
on 26 Jul 2019
Commented: Walter Roberson
on 27 Jul 2019
I use matlab R2018b and Iwant to display a video in axes using app designer this is my code:
function importervideoButtonPushed(app, event)
% to import some thing
[a, b]= uigetfile({'*.*'});
vid = VideoReader([b a]);
while hasFrame(vid)
imshow(getFrame(vid), 'Parent', app.UIAxes1);
end
end
but when I push on the button the following error is written
what should I do ?
8 Comments
Walter Roberson
on 27 Jul 2019
Remember to put in a drawnow() after the imshow()
Also, imshow() is a fairly expensive operation. It is better (faster) to create a image() object and set the the CData property of the object.
Accepted Answer
Walter Roberson
on 27 Jul 2019
Edited: Walter Roberson
on 27 Jul 2019
function importervideoButtonPushed(app, event)
% to import some thing
[a, b]= uigetfile({'*.*'});
vid = VideoReader([b a]);
first = true;
while hasFrame(vid)
thisframe = readFrame(vid);
if first
img = imshow(thisFrame, 'Parent', app.UIAxes1);
first = false;
else
img.CData = thisframe;
end
drawnow();
end
end
2 Comments
Walter Roberson
on 27 Jul 2019
function importervideoButtonPushed(app, event)
% to import some thing
[a, b]= uigetfile({'*.*'});
vid = VideoReader([b a]);
first = true;
while hasFrame(vid)
thisframe = readFrame(vid);
if first
img = imshow(thisframe, 'Parent', app.UIAxes1);
first = false;
else
img.CData = thisframe;
end
drawnow();
end
end
More Answers (1)
LEKHCHINE Somia
on 27 Jul 2019
1 Comment
Walter Roberson
on 27 Jul 2019
I guess you could do that, but it should not be needed, not unless you want to access the last frame of the video after the video is played.
See Also
Categories
Find more on Develop Apps Using App Designer in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!