Display videoPlayer in axes GUIDE

7 vues (au cours des 30 derniers jours)
Arnaud Tullio
Arnaud Tullio le 7 Sep 2017
Commenté : Walter Roberson le 24 Oct 2017
Hello, I would like to display my video in axes named handles.Video. The problem is that I would like to display step(videoPlayer,out) in my axes. My code is :
runloop=1;
while runloop
frame=getsnapshot(vid);
frame=frame(pos(2):(pos(2)+pos(4)),pos(1):(pos(1)+pos(3)),1);
point(1,:) = step(pointTracker,frame);
% Inserer physique sur la vidéo un marqueur
out = insertMarker(frame,point,'x');
% Calcule de la distance entre les 2 markers (norme)
Norme=sqrt(abs(((point(2,2) - point(1,2))).^2+abs((point(2,1) - point(1,1))).^2));
% Calcul de la distance en micro et microrad
Dmili=Norme*PixelNum*0.001;
Drad=(Dmili/FocaleNum)*1000;
% Affiche la distance entre les 2 points
set(handles.dist,'String',num2str(Drad));
set(handles.dist2,'String',num2str(Dmili));
% Affichage de la vidéo
axes(handles.Video)
step(videoPlayer,out)
end
  2 commentaires
Walter Roberson
Walter Roberson le 7 Sep 2017
Please show the code creating the videoplayer object
Arnaud Tullio
Arnaud Tullio le 7 Sep 2017
Just before the while, I have that :
vid=videoinput(handles.ADA,handles.numero,handles.format);
% Capture one frame to get its size.
videoFrame = getsnapshot(vid);
videoFrame=videoFrame(pos(2):(pos(2)+pos(4)),pos(1):(pos(1)+pos(3)),1);
videoPlayer = vision.VideoPlayer('Position',pos);
% Création des trackers
pointTracker = vision.PointTracker('MaxBidirectionalError',20);
initialize(pointTracker,barycentre1,videoFrame);
point(2,:) = barycentre2;

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 15 Sep 2017
  2 commentaires
Arnaud Tullio
Arnaud Tullio le 23 Oct 2017
I already checked it but the problem is that in your link, the video is open with a file. In my case, the video come from a camera in real time so i can't display it by "a frame" i display it with the video player. I just want to includ mon video player in my axes.
Walter Roberson
Walter Roberson le 24 Oct 2017
In the routine,
function [frame,rotatedImg,angle] = getAndProcessFrame(videoSrc,angle)
replace
frame = step(videoSrc);
with
frame = getsnapshot(videoSrc);
In the routine,
function playCallback(hObject,~,videoSrc,hAxes)
comment out
if isDone(videoSrc)
reset(videoSrc);
end
and
if isDone(videoSrc)
hObject.String = 'Start';
end
In the routine
function exitCallback(~,~,videoSrc,hFig)
comment out
release(videoSrc);
In the routine
function VideoInCustomGUIExample()
replace
videoSrc = vision.VideoFileReader('vipmen.avi', 'ImageColorSpace', 'Intensity');
with
vid = videoinput(handles.ADA,handles.numero,handles.format);

Connectez-vous pour commenter.

Plus de réponses (1)

Sarah Mohamed
Sarah Mohamed le 15 Sep 2017
Try using the function 'imshow'.
Assuming you've captured a frame in the variable 'out':
imshow(out, 'Parent', handles.Video);

Catégories

En savoir plus sur Animation 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!

Translated by