how can i display video and image simultaneously in GUI-matlab?

2 views (last 30 days)
Hi everyone,
Anybody knows that how can I display a video and a picture in two different windows simultaneously (with 1 pushbotton and without dilay in GUI)? I used the following code but the imgae (in second window-axes(handles.axes2)) is diplayed after finishing the video. I need to start both at the same time.
Thanks in advance.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
axes(handles.axes1);
vidObj = VideoReader('Try.avi');
numFrames = 0;
while hasFrame(vidObj)
F = readFrame(vidObj);
numFrames = numFrames + 1;
imagesc(F)
drawnow
end
numFrames
axes(handles.axes2);
imshow('index.jpg');

Answers (1)

Nitin Kapgate
Nitin Kapgate on 27 Oct 2020
Your code is running sequentially. At first, it displays the complete video frame by frame.
After the video is displayed, the image is displayed at the end. Thus both the video and images are not displayed simultaneously.
You can overcome this by displaying the image at the beginning and then displaying the video.
The modified code should be like this:
function pushbutton1_Callback(hObject, eventdata, handles)
% Display the image first
axes(handles.axes2);
imshow('index.jpg');
% hObject handle to pushbutton1 (see GCBO)
axes(handles.axes1);
vidObj = VideoReader('Try.avi');
numFrames = 0;
% Display the video frame by frame
while hasFrame(vidObj)
F = readFrame(vidObj);
numFrames = numFrames + 1;
imagesc(F)
drawnow
end
numFrames
end

Categories

Find more on Startup and Shutdown 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!