Main

Référence : Fonctions Pyduino

Pyduino Multimedia : initWebcam


Description

  • Cette fonction permet l'initialisation de la webcam système, notamment la résolution de l'image. Des définitions jusqu'à 1280x1024 peuvent être supportées, en fonction de la webcam utilisée.
  • Note technique : cette fonction active en interne la lecture automatique à intervalle régulier du flux webcam de façon à obtenir un rafraîchissement satisfaisant du buffer interne de la webcam.

Pré-requis

  • Cette fonction nécessite l'installation préalable de la librairie OpenCV pour Python. Si cette librairie n'est pas déjà installée sur votre système, l'installer avec la commande :
$ sudo apt-get install python-opencv

Matériel nécessaire

  • Une webcam USB fonctionnant sous Gnu/Linux doit être connectée sur l'un des ports USB. A titre indicatif, quelques webcams testées :
    • Logitech C170, C270,
    • Hercules Dualpix Exchange

Tests préalables

  • Il est utile de vérifier au préalable le bon fonctionnement de la webcam, ce qui se fait en lançant le logiciel Guvcview à partir du menu graphique Application > Sound et Video
  • Pour vérifier l'indice utilisé par le système pour la webcam, utiliser la commande suivante dans un terminal :
$ ls /dev/video*
  • On doit obtenir (ou équivalent) :
/dev/video0
  • Cet identifiant correspond à l'identifiant utilisé par le système pour la webcam. L'indice qui suit /dev/video peut changer, notamment si on utilise plusieurs webcams. Cet indice pourra être utilisé pour préciser la webcam source avec la fonction captureImage()

Syntaxe

initWebcam() # webcam indice 0 par defaut - resolution 320 x 240 par defaut
initWebcam(indexWebcam, widthCapture, heigthCapture)

Paramètres

  • indexWebcam : optionnel - l'index de la webcam obtenu avec la commande ls /dev/video*. index=0 si non précisé.
  • widthCapture : optionnel - la largeur de l'image en pixels. widthCapture=320 si non précisé.
  • heightCapture : optionnel - la hauteur de l'image en pixels. heightCapture=240 si non précisé.
  • important : la résolution width x height doit être supportée par la webcam. Regarder la liste des définitions disponibles dans Guvcview au besoin ou la documentation de la webcam. Typiquement, les résolution 320x240 et 640x480 sont supportées par toutes les webcams courantes.

Valeur renvoyée

Aucune

Exemple:

Il est possible que quelques messages d'erreur s'affichent lors du lancement de la première capture d'image : ceux-ci sont sans conséquence sur la capture et sont dus à l'initialisation de la webcam par OpenCV.


Code *.yno à copier/coller dans l'IDE Pyduino
Voir ici si vous préférez convertir le code Pyduino en code Python pour l'utiliser avec l'éditeur Geany par exemple.


# exemple pyDuino - par X. HINAULT - www.mon-club-elec.fr
# Juillet 2013 - Tous droits réservés - GPLv3

# test Capture Image

# entete declarative
noLoop=True

#--- setup ---
def setup():

        filepathImage=homePath()+dataPath(IMAGE)+"test.jpg"
        print filepathImage

        # initialisation webcam
        initWebcam(0,640,480) # la resolution doit etre supportee par la webcam !

        delay(2000) # laisse temps initialisation

        # capture image
        captureImage(filepathImage) # charge une image dans le buffer a partir webcam

        #addTextOnImage(today("/")+"@"+nowtime(":"), 10,height()-30, green) # ajoute texte sur image
        addTextOnImage(nowdatetime(), 10,height()-20, blue) # ajoute texte sur image

        saveImage(filepathImage) # enregistre l'image

        showImage(filepathImage) # affiche l'image


# -- fin setup --

# -- loop --
def loop():
        return  # si vide

# -- fin loop --
 

Lien utile

Commentaires utilisateurs

Pouvoir faire interagir aussi simplement la capture d'image avec les entrées / sorties numériques ou analogiques, çà ouvre plein de possibilités intéressantes.

Voir également


Page d'accueil de la référence Pyduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées à l'adresse suivante : support_at_mon-club-elec_point_fr

Cette page a été réalisée par Xavier HINAULT (2013) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.