Introduction au traitement des images et à la stéréo-vision

Accès à la structure d'une image dans Python

MéthodeLecture d'une image dans python

Nous allons lire cette image[1]  :

Sauvegarder cette image sur votre ordinateur et noter la localisation du fichier sur le disque (par exemple c:/temp/OCV_Haribo.png")

Pour Lire l'image, la commande est :

1
import numpy as np
2
import cv2 as cv
3
# Load an color image in grayscale
4
img = cv.imread('c:/temp/ocv_haribo.png',cv.IMREAD_UNCHANGED)
5
cv.imshow("Image",img)
6
cv.waitKey(50);

Une autre solution est d'écrire les ligne précédentes dans un fichier, par exemple dans LectureImage.py, et d'exécuter ce fichier à partir de python

1
exec(open('c:\\temp\\LectureImage.py').read())

Enfin une dernière possibilité, sans lancer python, est de cliquer à partir de Windows sur le fichier LectureImage.py. Il faut que l'extension pu soit associée à python.

Attentioncv.waitKey

la fonction cv.waitKey est indispensable pour afficher une image après cv.imshow.

Si cv.waitKey(0) est ajouté alors il faut appuyer sur une touche du clavier pour continuer le programme.

MéthodeAffichage de la structure dans python

Complétons le code précédent  :

1
import numpy as np
2
import cv2 as cv
3
# Load an color image in grayscale
4
img = cv.imread('c:/temp/ocv_haribo.png',cv.IMREAD_UNCHANGED)
5
print( img.shape )
6
cv.imshow("Image",img)
7
cv.waitKey(0);

La dimension de l'image est de 418 lignes par 507 colonnes et 4 plans (bleu, vert, rouge et canal alpha)

MéthodeStructure d'une image et accès aux données dans scilab

Une image couleur a une taille.

1
img.shape

L'origine de l'image est en haut à gauche.

Une image couleur est composée de trois plans, rouge, vert, bleu et dans le cas précédent d'un canal alpha. Pour afficher la couleur du pixel en ligne 17 et colonne 369 dans la console, la commande est

1
img[70,337]

le résultat est array([ 14, 11, 120, 255], dtype=uint8)

Comme vous pouvez le constater ce pixel est rouge (valeur =B,V,R et alpha).

MéthodeTracé d'une coupe d'une image

Pour tracer une coupe (la ligne 20) de l'image précédente, il faut entrer les lignes suivantes :

1
import numpy as np
2
import cv2 as cv
3
from matplotlib import pyplot as plt
4
# Load an color image in grayscale
5
img = cv.imread('c:/temp/ocv_haribo.png',cv.IMREAD_UNCHANGED)
6
print( img.shape )
7
cv.imshow("Image",img)
8
cv.waitKey(0);
9
cv.destroyAllWindows()
10
xs=np.linspace(0,img.shape[1]-1,img.shape[1])
11
yr=img[20,0:img.shape[1]:1,2]
12
yg=img[20,0:img.shape[1]:1,1]
13
yb=img[20,0:img.shape[1]:1,0]
14
plt.plot(xs,yr,color='r')
15
plt.plot(xs,yg,color='g')
16
plt.plot(xs,yb,color='b')
17
plt.show()

le résultat est le suivant. De quel couleur est le bonbon sur la ligne 20 ?

  1. image
PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre) modèle documentaire TechnOpale