Comment puis-je Acquérir des Images à Intervalles réguliers à l'aide de MATLAB?
Je suis un MATLAB débutant et je voudrais savoir comment je peux acquérir et d'enregistrer les 20 images à des intervalles de 5 secondes à partir de mon appareil photo. Je vous remercie beaucoup.
Pour acquérir l'image, l'appareil est livré avec certains documenté de façon à contrôler à partir d'un ordinateur? MATLAB prend en charge la liaison de en dehors des bibliothèques. Ou vous pouvez acheter le approprié MATLAB toolbox comme suggéré par MatlabDoug.
Pour enregistrer l'image, IMWRITE est probablement l'option la plus facile.
À répéter l'action, un simple POUR boucle avec un PAUSE vous donnera à peu près ce que vous voulez avec très peu de travail:
forctr=1:20img=AcquireImage();% your function goes herefname=['Image'num2str(ctr)];% make a file nameimwrite(img,fname,'TIFF');pause(5);% or whatever number suits your needsend
Si, toutefois, vous devez exacte des intervalles de 5 secondes, vous aurez à plonger dans MINUTERIEs. Voici un exemple simple:
J'ai l'Image Acquisition Toolbox cependant je ne pouvais pas configurer la façon d'obtenir ce dont j'avais besoin. Vais essayer la méthode que vous avez posté. Merci beaucoup!
D'abord construire une entrée vidéo de l'interface
vid=videoinput('winvideo',1,'RGB24_400x300');
Vous aurez besoin d'ajuster le dernier bit de votre webcam. Pour trouver une liste des appareils équipés d'une webcam (et d'autres choses d'ailleurs) utilisation:
imaqhwinfo
La suite de la première webcam dans un objet
a=imaqhwinfo('winvideo',1)
Trouver la liste des formats vidéo pris en charge avec
a.SupportedFormats
Vous aurez alors voulez démarrer l'interface:
start(vid);preview(vid);
Maintenant, vous pouvez effectuer les opérations suivantes:
Ou, comme d'autres commentateurs l'ont noté, vous pouvez également utiliser un Matlab minuterie pour l'intervalle.
Si vous souhaitez capturer des images avec un considérablement l'intervalle le plus court (1 ou plus par seconde), il peut être plus utile de considérer la webcam comme source vidéo. J'ai laissé une réponse à cette question qui dispose de méthodes pour la réalisation de cet objectif.
Il y a plusieurs façons d'aller à ce sujet, chacune avec des avantages et des inconvénients. Sur la base des informations que vous avez posté jusqu'à présent, voici comment je ferais ceci:
vid=videoinput('dcam',1'); % Change for your hardware of course.
vid.FramesPerTrigger = 20;
vid.TriggerRepeat = inf;
triggerconfig(vid, 'manual');vid.TimerFcn='trigger(vid)';vid.TimerPeriod=5;start(vid);
Ce sera l'acquisition de 20 images toutes les cinq secondes jusqu'à ce que vous appelez STOP. Vous pouvez modifier la TriggerRepeat paramètre à modifier, combien de fois l'acquisition se fera.
De toute évidence, cela ne fait pas de traitement sur les images une fois qu'ils sont acquis.
Maintenant que vous pouvez obtenir une image, vous souhaitez obtenir des vingt. Un objet timer ou une simple boucle for est ce que vous allez avoir besoin.
Assurez-vous de définir les tâches à exécuter" du champ à vingt. Aussi, vous devriez envelopper tout le code que vous avez pour chaque image composant logiciel enfichable dans une seule fonction.
Je l'ai eu à travailler. Mais c'est seulement une image. Alors maintenant, je vais essayer d'obtenir 20 images à 5 secondes d'intervalle. Merci beaucoup!
Pour acquérir l'image, l'appareil est livré avec certains documenté de façon à contrôler à partir d'un ordinateur? MATLAB prend en charge la liaison de en dehors des bibliothèques. Ou vous pouvez acheter le approprié MATLAB toolbox comme suggéré par MatlabDoug.
Pour enregistrer l'image, IMWRITE est probablement l'option la plus facile.
À répéter l'action, un simple POUR boucle avec un PAUSE vous donnera à peu près ce que vous voulez avec très peu de travail:
Si, toutefois, vous devez exacte des intervalles de 5 secondes, vous aurez à plonger dans MINUTERIEs. Voici un exemple simple:
OriginalL'auteur mtrw
D'abord construire une entrée vidéo de l'interface
Vous aurez besoin d'ajuster le dernier bit de votre webcam. Pour trouver une liste des appareils équipés d'une webcam (et d'autres choses d'ailleurs) utilisation:
La suite de la première webcam dans un objet
Trouver la liste des formats vidéo pris en charge avec
Vous aurez alors voulez démarrer l'interface:
Maintenant, vous pouvez effectuer les opérations suivantes:
Ou, comme d'autres commentateurs l'ont noté, vous pouvez également utiliser un Matlab minuterie pour l'intervalle.
Si vous souhaitez capturer des images avec un considérablement l'intervalle le plus court (1 ou plus par seconde), il peut être plus utile de considérer la webcam comme source vidéo. J'ai laissé une réponse à cette question qui dispose de méthodes pour la réalisation de cet objectif.
OriginalL'auteur Richard
Il y a plusieurs façons d'aller à ce sujet, chacune avec des avantages et des inconvénients. Sur la base des informations que vous avez posté jusqu'à présent, voici comment je ferais ceci:
Ce sera l'acquisition de 20 images toutes les cinq secondes jusqu'à ce que vous appelez STOP. Vous pouvez modifier la TriggerRepeat paramètre à modifier, combien de fois l'acquisition se fera.
De toute évidence, cela ne fait pas de traitement sur les images une fois qu'ils sont acquis.
OriginalL'auteur Dave Tarkowski
Voici un rapide tutoriel sur l'obtention d'une image http://www.mathworks.com/products/imaq/description5.html Avez-vous eu ce genre de chose à travailler encore?
EDIT:
Maintenant que vous pouvez obtenir une image, vous souhaitez obtenir des vingt. Un objet timer ou une simple boucle for est ce que vous allez avoir besoin.
Simple objet timer exemple
Exemple en vidéo de minuteurs dans MATLAB
Assurez-vous de définir les tâches à exécuter" du champ à vingt. Aussi, vous devriez envelopper tout le code que vous avez pour chaque image composant logiciel enfichable dans une seule fonction.
OriginalL'auteur MatlabDoug