Filter löschen
Filter löschen

Display videoPlayer in axes GUIDE

3 Ansichten (letzte 30 Tage)
Arnaud Tullio
Arnaud Tullio am 7 Sep. 2017
Kommentiert: Walter Roberson am 24 Okt. 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 Kommentare
Walter Roberson
Walter Roberson am 7 Sep. 2017
Please show the code creating the videoplayer object
Arnaud Tullio
Arnaud Tullio am 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;

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 15 Sep. 2017
  2 Kommentare
Arnaud Tullio
Arnaud Tullio am 23 Okt. 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 am 24 Okt. 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);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Graphics Object Identification finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by