je l'ai lu dans une vidéo Matlab comme ceci:Accélérer framerate pour la mise à jour figure dans Matlab
v = VideoReader('testvid.wmv')
cnt = 0;
while hasFrame(v)
cnt = cnt + 1;
video(cnt,:,:,:) = readFrame(v);
end
Si je vérifie l'objet vidéo, je me dit que la vidéo est avec 24 images. Toutefois, si montrerait directement après l'avoir lu (donc en gros imshow(readframe(v))
l'intérieur de la, il se montre uniquement en boucle avec environ 5 images par seconde.
Voilà pourquoi je l'ai écrit comme le code ci-dessus, de sorte que les cadres sont de pré-stockées dans l'espace de travail, et maintenant je peux les montrer comme
figure
for i=1:cnt
tic
imshow(squeeze(video(i,:,:,:)))
toc
end
Cependant, je reçois encore que 10 cadres - est Matlab Limitied dans cette direction est-il une meilleure façon d'afficher une vidéo avec un assez rapide framerate à l'intérieur MATLAB?
Il y a 24 images par "seconde", comme dans la vidéo jouera si rapidement joué dans un lecteur vidéo. Comme vous le savez, MATLAB n'est pas un lecteur vidéo, donc il va tracer des choses aussi vite que possible. Vous ne reproduisez pas réellement une vidéo, vous dites à MATLAB "d'afficher ces images une par une aussi vite que possible". Si vous avez un ordinateur puissant, il peut même les afficher plus vite que 24/s. –
Une chose que vous pourriez faire serait de faire MATLAB ouvrir VLC pour lire votre fichier vidéo. voir la commande [system] (http://fr.mathworks.com/help/matlab/ref/system.html?refresh=true) si vous voulez faire cela – BillBokeey