Télécharge Lecture d'une image ou d'une vidéo et plus Lectures au format PDF de Physique sur Docsity uniquement! Frédéric Legrand Licence Creative Commons 1 Lecture d'une image ou d'une vidéo 1. Lecture d'une image On commence par charger le module puis on ouvre l'interface : Needs['CV`']; CVOpen[]; Pour lire une image contenue dans un chier (JPG, PNG) : img=CVLoadImage['baboon.jpg',CVLoadImageUnchanged]; Le chier est cherché dans le répertoire courant, qu'il faut dénir au préalable avec SetDirectory. On peut aussi indiquer le chemin complet d'accès au chier. La fonction renvoit une référence (un entier) à une structure IplImage. Le deuxième argument peut ausi prendre la valeur CVLoadImageGrayScale. Dans le cas présent, l'image lue comporte 3 couches de 8 bits chacune. Ces couches sont B (Blue) G (Green) et R (Red). Pour obtenir la taille de l'image : s=CVGetSize[img] {300, 300} 2. Achage d'une image Il existe trois moyens d'acher une image. Le premier consiste à utiliser l'interface graphique de OpenCV. Une fenêtre portant un nom doit être créée puis l'image lui est fournie : CVNamedWindow['baboin',CVWindowAutosize]; CVShowImage['baboin',img]; On remarquera que cette fonction est prévue pour acher correctement une image dont les couches sont dans l'ordre B, G et R. Avec des images RGB, SHV et autres l'achage sera incorrect. La deuxième méthode consiste à convertir l'image en un objet Image. Pour cela, il faut obtenir un tableau des valeurs de l'image : array = CVGetImageArray[img,1,-1]; Le deuxième argument indique que les valeurs doivent être normalisées entre 0 et 1. Le troisième argument indique que l'ordre des couches doit être inversé, an d'obtenir des triplets dans l'ordre RGB. Image[array] Frédéric Legrand Licence Creative Commons 2 La fonction CVGetImageArray renvoit trois matrices correspondant aux couches R, G et B. Si l'image BGR initiale est utilisée, ces matrices ne sont pas dans le bon ordre pour être achées correctement. L'objet Image ainsi obtenu peut être utilisé avec les fonctions de traitement d'image de Mathematica. La troisième possibilité consiste à utiliser l'interface java. Pour cela, on commence par créer un éditeur d'image : edit=CVJImageEditor['baboin',True]; Le deuxième argument indique si la fenêtre doit être modale ou pas. Si elle est modale, l'exécution reste en attente de la fermeture de la fenêtre : il est impossible de continuer à travailler sur le notebook tant que la fenêtre est ouverte. Dans le cas contraire, le l d'exécution est rendu au noyau de Mathematica dès que la fenêtre est ouverte. Si la fenêtre est modale, elle reste invisible tant qu'aucune image ne lui a été fournie. On fournit ensuite l'image à acher : CVJShowImage[edit,img];