Vous êtes sur la page 1sur 16

Traitement d'images

Pr. Nabil Benoudjit


Université de Batna 2
Email: n.benoudjit@univ-batna2.dz

1
Chapitre 3: Pixels
Dans ce chapitre, nous discutons la base de tout le traitement d'image numérique: le pixel. Nous couvrons
les types d'informations tangibles que les pixels peuvent contenir et discutons des opérations à la fois sur
des pixels individuels (transformations ponctuelles) et sur des distributions de pixels (transformations
globales).

2.1 Qu’est-ce qu’un Pixel?


Le mot pixel est une abréviation de 'élément d’image (picture element)'. Indexé comme un emplacement (x;
y) ou colonne-ligne (c; l) à partir de l'origine de l'image, il représente le plus petit élément constitutif dans
une image numérique et contient une valeur numérique qui est l'unité d'information de base dans l'image
avec une résolution spatiale et un niveau de quantification donnés. Généralement, les pixels contiennent
la couleur ou la réponse d'intensité de l'image en tant que petit échantillon ponctuel de lumière colorée de
la scène. Une image est simplement un signal 2-D numérisé comme une grille de pixels. Une image
numérique peut être considérée comme une représentation discrète de données possédant à la fois une
information spatiale et une intensité (couleur).
 Images couleur / niveau de gris : Les images fréquemment rencontrées contiennent des
informations relatives à l'intensité de la couleur ou de niveau de gris à un point donné de la scène
ou de l'image.
 Imagerie médicale : De nombreuses images médicales contiennent des valeurs proportionnelles à
la Caractéristiques d'absorption du tissu par rapport à un signal projeté à travers le corps. Les
types les plus courants sont la tomodensitométrie (CT) et la résonance magnétique Imagerie
(IRM). Les images CT, comme les rayons X classiques, représentent des valeurs directement
proportionnel à la densité du tissu par lequel le signal est passé. En revanche, les images de
résonance magnétique (IRM) présentent plus de détails mais n'ont pas de relation directe avec une
seule propriété quantifiable du tissu. En CT et en IRM, notre format d'image 2-D est généralement
étendu à un volume 3-D; Le volume 3-D est essentiellement une pile d'images bidimensionnelles.
 Imagerie radar / sonar : Une image radar ou sonar représente une coupe transversale d'une cible
dans une proportion de sa distance du capteur et de son signal associé 'réflectivité'. Le radar est
couramment utilisé dans la navigation d'avion, bien qu'il ait également été utilisé sur des projets
de véhicules routiers. L'utilisation du sonar sur la plupart des navires océaniques modernes. Le
radar de pénétration au sol est de plus en plus utilisé pour les recherches en sciences
archéologiques et autres.

2
Figure 2.1 : Différents types d'informations sur les pixels
2.2 Opérations sur pixels:
Le type de traitement de l'image le plus simple est une transformation de point qui mappe les valeurs à des
points individuels (c'est-à-dire des pixels) dans l'image d'entrée aux points correspondants (pixels) dans une
image de sortie. Dans le sens mathématique, il s'agit d'un mappage fonctionnel individuel d'entrée en sortie.
Les exemples les plus simples de ces transformations d'image sont des opérations arithmétiques ou logiques
sur des images. Chacun est exécuté comme une opération entre deux images IA et IB ou entre une image et
une valeur constante C:

3
Ioutput = IA + ‫‏‬IB
Ioutput = IA + ‫‏‬C
Dans les deux cas, les valeurs dans un emplacement de pixel individuel (i; j) dans l'image de sortie sont
Mappé comme suit:
Ioutput (i,j) = IA (i,j)+ ‫‏‬IB(i,j)
Ioutput (i,j)= IA (i,j)+ ‫‏‬C

2.2.1 Opérations arithmétiques sur les images:


Les opérations arithmétiques de base peuvent être effectuées rapidement et facilement sur les pixels d'image
pour une variété d'effets et d'applications.
2.2.1.1 Addition et soustraction d'image:
L'ajout d'une valeur à chaque valeur de pixel d'image peut être utilisé pour obtenir les effets suivants (Figure
2.2):
 Réglage du contraste (Contrast adjustment): Ajoute une valeur constante positive C à chaque
emplacement de pixel Augmente sa valeur et, par conséquent, sa luminosité.
 Mélange (Blending): L'ajout d'images produit une image composite des deux images d'entrée. Cela
peut être utilisé pour produire des effets de mélange en utilisant une addition pondérée.

Figure 2.2 : Réglage du contraste de l'image à l'aide de l'addition arithmétique


NB :

4
 Généralement, les images doivent être de la même dimension et du même type de données (par
exemple, un nombre entier de 8 bits) pour que l'addition et la soustraction soient possibles entre elles.
 Lorsque vous effectuez des opérations d'addition, nous devons également être conscients du
dépassement d'entier. Une image entière de 8 bits ne peut contenir que des valeurs entières de 0 à 255.
Les fonctions de Matlab imadd, imsubtract et imabsdiff évitent ce problème en tronquant ou en
arrondissant des valeurs de débordement.
En soustrayant une valeur constante à partir de chaque pixel (comme addition), on peut aussi utiliser une
forme basique de réglage du contraste. Soustraire une image d'une autre montre la différence entre les
images. Si nous soustrayons deux images dans une séquence vidéo, nous obtenons une image de différence
(en supposant une caméra statique) qui montre le mouvement ou les changements qui se sont produits entre
les images de la scène (par exemple, la Figure 2.3). Cela peut être utilisé comme une forme de base de
changement / détection de mouvement dans les séquences vidéo.

Figure 2.3 : Différenciation de l'image à l'aide de la soustraction arithmétique


2.2.1.2 Multiplication et division de l'image:
La multiplication et la division peuvent être utilisées comme un simple moyen de réglage du contraste et
extension à l'addition / soustraction (par exemple réduire le contraste à 25% = division par 4, augmenter le
contraste de 50% = multiplication de 1,5 (voir figure (2.4)). Cette procédure est parfois appelée échelle de
couleur d'image. De même, la division peut être utilisée pour la différenciation de l'image, car la division
d'une image par une autre donne un résultat de 1.0 où les valeurs des pixels d'image sont identiques et une
valeur non égale à 1.0 où les différences se produisent. Cependant, la différenciation d'image à l'aide de la
soustraction est plus efficace sur le plan informatique.

5
Image originale Contraste réduit de 25%

Contraste augmenté de 50%

Figure 2.4 : Exemple de réduction et augmentation du contraste d’une image


NB :
 Pour toutes les opérations arithmétiques entre les images, nous devons nous assurer que le pixel
résultant reste dans la gamme entière disponible du type / taille de données disponibles.

2.2.2 Opérations logiques sur les images:


Nous pouvons effectuer des opérations logiques standard entre des images telles que NOT, OR, XOR et
AND. En général, l'opération logique est effectuée entre chaque bit correspondant à la représentation des
pixels de l'image.
 NOT (inversion): Cela inverse la représentation de l'image. Dans le cas le plus simple d'une image
binaire, les pixels d'arrière-plan (noirs) deviennent (avant-plan) blanc et vice versa. Pour les images
en niveaux de gris et en couleurs, la procédure consiste à remplacer chaque valeur de pixel Iinput (i; j)
comme suit:
Iouput(i; j) = MAX – Iinput(i; j)
Où MAX est la valeur maximale possible dans la représentation d'une image donnée. Ainsi, pour une image
en niveau de gris de 8 bits (ou 8 bits pour les canaux dans une image couleur), MAX = 255.

6
Figure 2.5 : Inverse (NOT) d’une image
 OR / XOR / AND sont utiles pour traiter des images à valeur binaire (0 ou 1).

Image originale Image inversée XOR Image originale Image inversée AND Image originale Image inversée OU

Figure 2.6 : Les opérations logiques (XOR, AND et OU) sur deux images
2.2.3 Seuil (Thresholding):
Une autre transformation de base est le seuillage. Le seuillage produit une image binaire à partir d'une image
en niveau de gris ou en couleur en définissant les valeurs de pixels à 1 ou à 0 selon qu'elles sont au-dessus ou
au-dessous de la valeur du seuil. Ceci est couramment utilisé pour séparer ou segmenter une région ou un
objet dans l'image en fonction de ses valeurs de pixels, comme le montre la figure 2.7.
Dans son opération de base, le seuillage fonctionne sur une image I comme suit:
for each pixel I(i,j) within the image I
if I(i,j) > threshold
I(i,j) = 1
else
I(i,j) = 0
end, end

7
Dans Matlab, cela peut être effectué en utilisant la fonction im2bw et avec un seuil dans l’intervalle
[0 à 1], comme le montre la figure dans l'exemple 2.7.

Image originale Seuil 0.1

Seuil 0.5 Seuil 0.9

Figure 2.7: Seuillage


La fonction im2bw convertit automatiquement les images en couleur en niveau de gris et réduit la valeur de
seuil fournie (de 0 à 1) selon la plage de quantification donnée de l'image en cours de traitement. Un exemple
est illustré à la figure 2.7.

8
Pour les images en niveau de gris, dont les pixels contiennent une valeur d'intensité unique, un seul seuil doit
être choisi. Pour les images en couleur, un seuil distinct peut être défini pour chaque canal (pour
correspondre à une couleur particulière ou pour isoler différentes parties de chaque canal). Dans de
nombreuses applications, les images en couleur sont converties en niveau de gris avant le seuillage pour
raison de simplification. Les variations communes sur le seuil simple sont:
 L'utilisation de deux seuils pour séparer les valeurs de pixels dans une plage donnée;
 L'utilisation de seuils multiples résultant en une image marquée avec des parties étiquetées de 0 à N;
 En conservant l'information de pixel d'origine pour les valeurs sélectionnées (c'est-à-dire au-dessus /
entre les seuils) tandis que d'autres sont affectés par la couleur le noir.

Le seuil est l'opérateur «cheval de travail» pour la séparation de l'image au premier plan de l'arrière-plan. Une
question qui reste est de savoir comment choisir un bon seuil ? Ce sujet sera abordé dans la partie
segmentation d'image.

2.3 Opérations ponctuelles sur les images:


L’intervalle dynamique d'une image est défini comme la différence entre les plus petites et les plus grandes
valeurs de pixels dans l'image. On peut définir certaines transformées ou mappages fonctionnels qui
modifient l'utilisation efficace de la plage (intervalle) dynamique. Ces transformations sont principalement
appliquées pour améliorer le contraste de l'image. Cette amélioration est obtenue en modifiant la relation
entre la plage dynamique de l'image et les valeurs en niveau de gris (ou de couleur) utilisées pour représenter
les valeurs.
En général, nous allons supposer une plage de niveau de gris de 8 bits (0 à 255) pour les images d’entrée et
les images de sortie résultantes, mais ces techniques peuvent être généralisées à d'autres plages d'entrée et à
des canaux individuels à partir d'images en couleur.
2.3.1 Transformée logarithmique:
La plage dynamique d'une image peut être compressée en remplaçant chaque valeur de pixel par une image
donnée avec son logarithme : Ioutput (i,j) = ln Iinput (i,j), avec I (i,j) est la valeur d'un pixel à un emplacement
(i,j) dans l’image I et ln ( ) représente la fonction logarithme.
En pratique, comme le logarithme est indéfini pour zéro, on utilise la forme générale suivante de la
transformation logarithmique:


I output (i, j )  c ln 1  (e  1) I input (i, j ) 

9
Notez que le facteur de mise à l'échelle  contrôle la plage d'entrée à la fonction logarithmique, tandis que
c évalue la sortie sur la plage de quantification d'image de 0 à 255. L'ajout de 1 est inclus pour éviter les
problèmes où le logarithme n'est pas défini pour Iinput (i,j) = 0. Le niveau de compression de la plage
dynamique est effectivement contrôlé par le paramètre  . Comme le montre la Figure 2.8, la fonction
logarithmique étant proche du linéaire du côté de l'origine, la compression obtenue est plus petite pour une
image contenant une faible gamme de valeurs d'entrée que celle contenant une large plage de valeurs de
pixels.

Figure 2.8 : La transformation logarithmique: la variation du paramètre  change le gradient de la fonction


logarithmique utilisée pour l'entrée à la sortie

La constante de mise à l'échelle c peut être calculée en fonction de la valeur de sortie maximale autorisée
(255 pour une image de 8 bits) et de la valeur maximale max (Iinput (i; j)) présente dans l'entrée:
255
c
 
log 1  max( I input (i, j ))
.

L'effet de la transformation logarithmique est d'augmenter la plage dynamique des régions sombres dans une
image et de diminuer la plage dynamique dans les régions lumineuses (par exemple Figure 2.9). Ainsi, la
transformée logarithmique transforme les valeurs d'intensité inférieure ou les régions sombres en un plus
grand nombre de valeurs de niveaux de gris et comprime les valeurs d'intensité élevée ou les régions
lumineuses dans une gamme plus petite de valeurs de niveaux de gris.
Dans la figure 2.9, nous voyons l'effet typique d'être photographié devant un Fond brillant (gauche) où la
plage dynamique du film ou de l'ouverture de la caméra est trop petite pour capturer toute la plage de la
scène. En appliquant la transformation logarithmique, nous éclairons le premier plan de cette image en

10
diffusant les valeurs de pixels sur une gamme plus large et en révélant plus de détails tout en comprimant la
plage de pixels d'arrière-plan.

Figure 2.9 : Application de la transformation logarithmique à une image échantillon


2.3.2 Transformée exponentielle:
La transformation exponentielle est l'inverse de la transformation logarithmique. Ici, la fonction de
cartographie est définie par la base e donnée élevée à la puissance de la valeur de pixel d'entrée:

I output (i, j )  e input


I (i , j )
,

avec I (i,j) est la valeur d'un pixel à un emplacement (i,j) dans l’image I.
Cette transformation améliore les détails dans les régions de grande valeur de l'image (brillante) tandis que
diminue la plage dynamique dans les régions à faible valeur (sombre) - l'effet inverse de la Transformation
logarithmique. Le choix de la base dépend du niveau de compression de la plage dynamique requis. En
général, les nombres de base juste au-dessus de 1 conviennent à l'amélioration de l'image photographique.
Ainsi, nous étendons notre notation de transformation exponentielle pour inclure une base et une échelle
variables dans la plage de sortie appropriée comme précédemment :


I output (i, j )  c (1   ) input
I (i , j )

1 ,

ici, (1 + α) est la base et c est le facteur de mise à l'échelle requis pour s'assurer que la sortie se situe dans une

plage appropriée. Comme il est évident lorsque Iinput (i; j) = 0, il en résulte que Ioutput (i; j) = c, à moins que
nous n'ajoutons le -1 pour contrer ce décalage de potentiel apparaissant dans l'image de sortie. Le niveau de
compression et d'expansion de la plage dynamique est contrôlé par la partie de la courbe de la fonction
exponentielle utilisée pour le mappage d'entrée à sortie; ceci est déterminé par le paramètre α. Comme le

11
montre la figure 2.10, la fonction exponentielle étant proche du linéaire à côté de l'origine, la compression est
plus grande pour une image contenant une plage inférieure de pixels que celle contenant une plage plus large.

Figure 2.10: La transformation exponentielle: en modifiant le paramètre α, elle change le gradient de la


fonction exponentielle utilisée pour l'entrée à la sortie
On peut voir l'effet de la transformation exponentielle (et de la variation de la base) dans la Figure 2.11.

Figure 2.11 : Application de la transformation exponentielle à une image échantillon


2.3.3 Transformée de puissance (gamma):
Une alternative aux transformations logarithmiques et exponentielles est la transformée par l'élévation de
puissance dans laquelle chaque valeur de pixel d'entrée est élevée à une puissance fixe:

I output (i, j )  c( I input (i, j ))

12
Figure 2.12: L'application de la transformée de puissance (gamma) à une image échantillon
2.4 Distributions de pixels: histogrammes:
Un histogramme d'image est un graphique de la fréquence relative d'occurrence de chacune des valeurs de
pixels autorisées dans l'image par rapport aux valeurs elles-mêmes. Si nous normalisons un tel diagramme de
fréquence, de sorte que le total de toutes les entrées de fréquence sur la plage admissible soit 1, nous pouvons
traiter l'histogramme d'image comme une fonction de densité de probabilité discrète qui définit la probabilité
qu'une valeur de pixel donnée se produit dans l'image. L'inspection visuelle d'un histogramme d'image peut
révéler le contraste de base qui est présent dans l'image et toutes les différences potentielles dans la
répartition des couleurs des éléments de l'image et du fond de l'image.
Pour une simple image en niveau de gris, l'histogramme peut être construit en comptant simplement le
nombre de fois que chaque valeur en niveau de gris (0-255) se produit dans l'image. Chaque 'barre' dans
l'histogramme est incrémenté chaque fois que sa valeur est rencontrée ainsi qu'un histogramme d'image peut
facilement être construit comme suit –
initialize all histogram array entries to 0
for each pixel I(i,j) %within the image I
histogram(I(i,j)) = histogram(I(i,j)) + 1
end

13
Figure 2.13: Exemple d'image et son histogramme correspondant

Un exemple d'histogramme est illustré à la figure 2.13, où on voit un graphique d'histogramme avec deux
pics distinctifs: un pic élevé dans la plage inférieure des valeurs des pixels correspond à la distribution
d'intensité d'arrière-plan (fond) de l'image et un pic inférieur dans la plus grande plage des valeurs des pixels
(Pixels lumineux) correspond aux objets de premier plan (pièces de monnaie).

Figure 2.14: Exemple d'image et son histogramme correspondant

2.4.1 Etirement du contraste:


Les histogrammes d'image sont également utilisés pour l'étirement de contraste (également appelé
normalisation) qui fonctionne en étirant la gamme des intensités de pixels de l'image d'entrée pour occuper
une plus grande plage dynamique dans l'image de sortie. Afin d'effectuer des étirements, nous devons d'abord
connaître les limites des valeurs de pixels supérieures et inférieures sur lesquelles l'image doit être
14
normalisée, notée a et b respectivement. Ce sont généralement les limites supérieure et inférieure de la plage
de quantification des pixels utilisées (c'est-à-dire pour une image avec 8 bits, a = 255 et b = 0). Dans sa forme
la plus simple, la première partie est l’analyse de l'opération de l’étirement du contraste de l'image d'entrée
ensuite pour déterminer les valeurs de pixels maximales et minimales actuellement présentes, notées c et d
respectivement.
Sur la base de ces quatre valeurs (a, b, c et d), la plage de pixels d'image est étirée selon la formule suivante:
ab
I output (i, j )  ( I input (i, j )  c) * ( )a,
cd
Pour chaque emplacement de pixel désigné (i;j) dans les images d'entrée et de sortie. L'étirement de contraste
est donc un autre exemple d'une transformation ponctuelle.
 Calculez l'histogramme de l'image d'entrée et sélectionnez c et d comme 5% et de 95% de la
distribution cumulative (c'est-à-dire 5% des pixels d'image seront inférieur à c et 5% supérieur à d).
Un exemple est montré à la figure 2.15, où nous voyons que le contraste est considérablement amélioré
(Quoique légèrement saturé).

Figure 2.15 : Etirement du contraste appliqué à un échantillon d’image

Nous pouvons afficher les histogrammes avant et après l'étirement du contraste pour cet exemple en utilisant.
Ces répartitions d'histogramme sont illustrées à la figure 2.16. Nous pouvons clairement voir la plage
dynamique restreinte de l'image originale et comment les contrastes ont été étendus enregistrés sur
l’'histogramme correspondant (la répartition de l’histogramme est presque horizontal).

15
Figure 2.16: Les distributions des histogrammes avant et après de la figure 2.15

Images dans Matlab

B = imadd(A, 100); % Add 100 to each pixel value in image A

Output = imsubtract(A, B); % Subtract images

Output_div = imdivide(A,4); % Divide image by 4

Output_mul = immultiply(A,1.5); % Multiply image by 1.5

B = imcomplement(A); % Invert the image

Abw = im2bw(A); % convert to binary

Output = xor(Abw, Bbw); % xor images images xor

Output = Abw & Bbw; % and images images

Output = Abw | Bbw; % ou images images

T1 = im2bw(I, 0.1); % Perform thresholding

imhist(I); % Display histogram

Im = imfilter(I,fspecial('average',[15 15]),'replicate'); %Create mean image

Im = medfilt2(I,[15 15]); %Create median image

16

Vous aimerez peut-être aussi