• Aucun résultat trouvé

Tableaux à 2 dimensions, images

N/A
N/A
Protected

Academic year: 2022

Partager "Tableaux à 2 dimensions, images"

Copied!
2
0
0

Texte intégral

(1)

13

Tableaux à 2 dimensions, images

I. Les tableaux de Numpy

⋄ On rencontre souvent des données qui se représentent naturellement par des tableaux à 2 dimensions (matrices, images). On pourrait utiliser des listes de listes mais le module numpypropose une structure de données adaptées : la structurearray.

⋄ Cette structure permet de regrouper dans un tableau des éléments de même type (en généralint,floatoucomplex). Ce tableau peut avoir plusieurs dimensions mais on rencon- trera uniquement deux cas : des tableaux à 1 dimension (analogue mathématique : vec- teurs deRn ouCn) ou 2 dimensions (analogue mathématiques : matrices deMnp(R) ou Mnp(C)).

⋄ Construction et découpage :

>>> import numpy as np

>>> x=np.array([1,2,3])

>>> x[1]

2

>>> A=np.array([[1,2],[3,4]])

>>> A[1,1]

4

>>> A[1,:]

array([3, 4])

>>> A[:,1]

array([2, 4])

>>> B=np.zeros((2,3))

>>> np.random.randint(0,6,7)

array([0, 1, 4, 3, 5, 4, 1])

⋄ Quelques exemples d’opérations :

>>> import numpy as np

>>> A=np.array([[1,2],[3,4]])

>>> np.floor(np.sqrt(A))

array([[ 1., 1.], [ 1., 2.]])

>>> A*A

array([[ 1, 4], [ 9, 16]])

>>> A**2

array([[ 1, 4], [ 9, 16]])

>>> A+1

array([[2, 3], [4, 5]])

Remarque.Le modulenumpypropose des versions spécifiques des fonctions usuelles qui peuvent travailler sur des tableaux (np.sin,np.exp, etc.).

(2)

B • Dans unarray(contrairement aux listes) tous les éléments doivent être du même type, en généralintoufloat;

• Lesarrayde typeintpeuvent avoir un comportement étrange : on les évitera en uti- lisant une commande du type :

>>> import numpy as np

>>> A=np.array([[1,2],[3,4]],float)

II. Application : traitement d’images

⋄ On dispose d’un tableau A de taille n×m représentant une image en niveaux de gris : chaque coefficient deAest un nombre entier compris entre 0 (noir) et 255 (blanc).

⋄ Pour éclaircirA, on définit un nouveau tableauEtel que :E[i,j]=¥ 16p

A[i,j]¦ : E=np.floor(np.sqrt(A)*16)

⋄ On bruite l’image en ajoutant des valeurs aléatoires à la matriceA. On fait en sorte que les coefficients de la nouvelle matrice restent compris entre 0 et 255 :

B=np.clip(A+np.random.randint(-25,26,(n,m)),0,255)

⋄ Pour débruiter l’imageB, on crée une nouvelle imageDtelle queD[i,j] soit la moyenne des 9 valeurs deB situées autour deB[i,j] (pour simplifier, on garde les pixels au bord de Dnoirs) :

D=np.zeros((n,m))

for i in range(1,n-1):

for j in range(1,m-1):

D[i,j]=np.mean(B[i-1:i+2,j-1:j+2])

A E B D

Références

Documents relatifs

La deuxième partie du tableau de financement permet de vérifier le montant de la variation du FRNG telle qu’elle apparaît dans la première partie du document mais avec le

Exercice 2 (Somme des éléments d’une liste) Écrire une fonction somme_liste.. • d’argument L une liste d’expressions de type

• qui retourne True si les éléments de la liste L sont rangés dans l’ordre croissant (au sens strict) et False sinon. Exercice 2 (Présence d’une sous-liste dans une liste)

Ce tableau peut avoir plusieurs dimensions mais on rencon- trera uniquement deux cas : des tableaux à 1 dimension (analogue des vecteurs en mathé- matiques) ou 2 dimensions

À l’aide du tableur et en utilisant uniquement les valeurs de la ligne 3 et de la cellule G5, calcule la valeur des angles pour la représentation de ces données sous forme

Sur route mouillée, cette distance de freinage est deux fois plus grande que sur route sèche à vitesse égale.. Recopie et complète le tableau à double

Si f est une fonction vectorielle d´ efinie sur un intervalle compact [a, b] de R , on appellera suite associ´ ee ` a f toute suite (ϕ n , θ n ) de couples de fonctions en escalier

Remarque 4.1 Si f, g sont deux fonctions num´ eriques ou vectorielles int´ egrables sur [a, b] et si leurs valeurs ne diff` erent qu’en un nombre fini de points de [a, b], leurs