Vous êtes sur la page 1sur 10

Chapitre 3

Traitements de bases sur l’image

Sommaire
3.1 Types de transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2 L’histogramme d’une image . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Transformations ponctuelle linéaire . . . . . . . . . . . . . . . . . . . . . 36
3.3.1 Opération Addition/Soustraction . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.2 Opération multiplication/division . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.3 Fusion d’images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4 Transformations ponctuelle non-linéaire . . . . . . . . . . . . . . . . . . . 37
3.4.1 Transformation Gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.2 Transformation Logarithmique . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.3 Transformation Exponentielle . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.4 Étirement de l’histogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.5 Égalisation d’histogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5 Transformations géométriques . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.1 Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.2 Mise à l’échelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.5.3 Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6 Opérations logiques sur les images binaires . . . . . . . . . . . . . . . . . 41

33
CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE

3.1 Types de transformations


En traitement d’images il existe trois types de transformations (Figure 3.1) :
0
— Ponctuelles (pixel à pixel ) : la nouvelle valeur I (x, y) est obtenue à partir de I(x, y) seule-
ment.
0
— Locales (ou de voisinage) : la nouvelle valeur I (x, y) est obtenue à partir de l’ensemble des
valeurs initiales I(ν(x, y)) dans un voisinage autour du pixel de coordonnées (x, y).
0
— Globales : la nouvelle valeur I (x, y) est obtenue à partir de l’ensemble des valeurs de l’image
Histogramme Transformations Amélioration du contraste Opérations algébriques
initiale I.
Transformations d'images : principe et types (2/2)

I t I'
Transformations ponctuelles x x
t
I  x , y   I ' x , y =t  I  x , y  y y

Ex. seuillage, ajustement luminosité/contraste


opérations algébriques, manip. d'histogramme
tt
x x
Transformations locales
t y y
I  x , y   I ' x , y =t  I  V  x , y    V  x , y
Ex. filtrage
I t I'
Transformations globales x
t
I  x , y   I ' x , y =t  I  y

Ex. transformation dans l'espace de Fourier

LPro GPI Vision 3.1:


Figure Types
Industrielle de des
– UE3 : Analyse transformations
Images – O. Losson & F. Cabestaing 11

3.2 L’histogramme d’une image


Pour mettre en œuvre une stratégie de correction d’image il faut tout d’abord connaı̂tre si une
image est trop sombre ou trop claire. Pour répondre à ce besoin, on utilise l’histogramme d’une
image.
26 2 Tiraitement ponctuel des images numériques

Fig. 2.1 Hibiscus


Figure et son 3.2: Histogramme
histogramme d’une image.

de la dynamique de 1’image (répartition


L’histogramme
L’histogramme d’une image en niveau deindication
donne une gris dénombre les occurrences de chacun des niveaux. Il
des niveaux de gris) mais n’est, en aucun cas, une caractéristique de Pimage.
donne une indication de la dynamique de 1’image (répartition des niveaux de gris (Figure 3.2)). hp est
le nombre des pixels ayant un niveau de gris p . H(p) étant l’histogramme de l’image définie comme :

H(p) = hp

Si la majorité des pixels d’une image ont des valeurs faibles, nous verrons cela comme la plupart des
niveaux hauts se trouvant à gauche dans l’histogramme et pouvons ainsi conclure que l’image est
sombre.
Fig. 2.2 Deux images différentes peuvent avoir le méme histogramme
Si la plupart des niveaux hauts sont à droite dans l’histogramme, l’image sera lumineuse. Si les
niveaux sont répartis également, l’image aura un bon contraste et vice versa (Figure 3.3).
2.1.1 Transformation de recadrage

34 On se donne une image présentant un histogramme concentré dans 1’in—


tervalle [a, b]. Les valeurs a, b correspondent aux niveaux de gris extrémes
présents dans cette image. Le recadrage de dynamique consiste a étendre la
dynamique de 1’image transformée a l’étendue totale [0, 255]. La transforma-
4.3 The Image Histogram 51
CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE

4.3 The Image Histogram 51

Fig. 4.9 Four images and their respective histograms


Figure
Fig. 4.9 Four images and their respective 3.3
histograms

Fig. 4.10 Four images with the exact same histogram

4.3.1 Histogram Stretching

Armed with this new tool we now seek a method to automatically correct the image
Fig. 4.10 Four images with the exact same histogram
so that it3.4:
Figure Un too
is neither histogramme
bright nor too darkidentique
and does not pour
have tooquatre images
low contrast. In
terms of histograms, this means that the histogram should start at 0 and end at 255.

4.3.1 Histogram Stretching


Lors du calcul d’un histogramme d’image, la position réelle des pixels n’est pas utilisée. Cela signifie
Armed with this new tool we now seek a method to automatically correct the image
que : so that it is neither too bright nor too dark and does not have too low contrast. In
terms of histograms, this means that the histogram should start at 0 and end at 255.
— de nombreuses images ont le même histogramme ;

— une image ne peut pas être reconstruite à partir de l’histogramme (transformation irréversible).
52 4 Point Processing

Fig. 4.11 The histograms of a color image


Figure 3.5: Histogramme d’une image couleur

Sur la Figure 3.4, quatre images avec le même histogramme sont représentées. On peut également
calculer l’histogramme d’une image couleur. Cela se fait séparément pour chaque composante de
couleur. Un exemple est illustré à la Figure 3.5.

35
CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE
44 4 Point Processing

3.3 Transformations ponctuelle linéaire


3.3.1 Opération Addition/Soustraction
On peut manipuler la luminosité d’une image en utilisant l’équation suivante :

g(x, y) = f (x, y) + b
Fig. 4.1 The principle of point processing. A pixel in the input image is processed and the result
is stored at the same position in the output image

Fig. 4.2 If b in Eq. 4.1 is zero, the resulting image will be equal to the input image. If b is a
Figure 3.6: Transformations
negative ponctuelle
number, then the resulting image linéaire
will have decreased (addition/soustraction
brightness, and if b is a positive )
number the resulting image will have increased brightness

Le résultat du changement demore


An often la valeur
convenient de
way b
of est présenté
expressing par operation
the brightness la Figure 3.6.
is by the
use of a graph, see Fig. 4.3. The graph shows how a pixel value in the input im-
La table de correspondance ou LUT
age (horizontal axis) maps(Look-Up
to a pixel valueTabl e) qui
in the output définit,
image pour
(vertical axis). Suchchaque niveau de gris i, le
0
a graph is denoted gray-level mapping. In the first graph, the mapping does ab-
nouveau niveau i = t(i) (Figure 3.7).
solutely nothing, i.e., g(142, 42) = f (142, 42). In the next graph all pixel values
4.1 Gray-Level Mapping 45
are increased (b > 0), hence the image becomes brighter. This results in two things:
i) no pixel will be completely dark in the output and ii) some pixels will have a value
above 255 in the output image. The latter is no good due to the upper limit of an
8-bit image and therefore all pixels above 255 are set equal to 255 as illustrated by
the horizontal part of the graph. When b < 0 some pixels will have negative values
and are therefore set equal to zero in the output as seen in the last graph.
Just like changing the brightness on your TV, you can also change the contrast.
The contrast of an image is a matter of how different the gray-level values are. If we
look at two pixels next to each other with values 112 and 114, then the human eye
has difficulties distinguishing them and we will say there is a low contrast. On the
other hand if the pixels are 112 and 212, respectively, then we can easily distinguish

4.1 Gray-Level Mapping 45

Fig. 4.3 Three examples of gray-level mapping. The top image is the input. The three other images
Figure 3.7: Table de transformation
are the result of applying the three gray-level mappings to the input. All three gray-level mappings
are based on Eq. 4.1

3.3.2 Opération multiplication/division


On peut également modifier le contraste de l’image en utilisant l’équation suivante :

g(x, y) = a × f (x, y)
Fig. 4.4 If a in Eq. 4.2 is one, the resulting image will be equal to the input image. If a is smaller
than one then the resulting image will have decreased contrast, and if a is higher than one then the
resulting image will have increased contrast
Si a ≥ 1, le contraste augmente et si a ≤ 1, le contraste diminue. Sur la Figure 3.8, l’effet du
Fig. 4.3 Three examples of gray-level mapping. The top image is the input. The three other images
them
are the and
resultwe will saythe
of applying thethree
contrast is high.
gray-level The contrast
mappings of All
to the input. an three
image is changed
gray-level by
mappings
changement de contraste est peut
changing
are based onthe
être observé.
4.1 of the graph :
Eq.slope
1

1 In practice the line is not rotated around (0, 0) but rather around the center point (127, 127), hence

b = 127(1 − a). However, for the discussion here it suffice to say that b = 0 and only look at the
slope.

Fig. 4.4 If a in Eq. 4.2 is one, the resulting image will be equal to the input image. If a is smaller
Figure 3.8:
thanTransformations ponctuelle
one then the resulting image will linéaire
have decreased contrast, and if (Multiplication/Division
a is higher than one then the )
resulting image will have increased contrast

them and we will say the contrast is high. The contrast of an image is changed by
On peut obtenir une formule
changing thegénéralisée
slope of the graph1qui
: prend on considération Addition/Soustraction et
Multiplication/Division
1
décrite par l’équation suivante :
In practice the line is not rotated around (0, 0) but rather around the center point (127, 127), hence
b = 127(1 − a). However, for the discussion here it suffice to say that b = 0 and only look at the
slope.
36
CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE

g(x, y) = a × f (x, y) + b

Plusieurs corrections peuvent alors crées.

3.3.3 Fusion d’images


Cet opérateur produit un mélange de deux images d’entrée de la même taille en combinant la
multiplication scalaire et l’ajout d’images. Semblable à l’ajout de pixels, la valeur de chaque pixel
dans l’image de sortie est une combinaison linéaire des valeurs de pixels correspondantes dans les
images d’entrée. Les coefficients de la combinaison linéaire sont spécifiés par l’utilisateur et définissent
le rapport selon lequel les images doivent être mises à l’échelle avant de les combiner. Ces proportions
sont appliquées de telle sorte que les valeurs des pixels de sortie ne dépassent pas la valeur maximale
des pixels. L’image résultante est calculée à l’aide de la formule suivante :

g(x, y) = c × f1 (x, y) + (1 − c) × f2 (x, y)

f1(x,y) f2(x,y)

cxf1(x,y)+(c-1)xf2(x,y)

C=0,8 C=0,2

Figure 3.9: Fusion d’images

f1 et f2 sont les deux images d’entrée. C est le rapport de fusion (Figure ??, qui détermine
l’influence de chaque image d’entrée dans la sortie. C peut être soit un facteur constant pour tous
les pixels de l’image, soit déterminé pour chaque pixel séparément à l’aide d’un masque. La taille du
masque doit être identique à la taille des images.

3.4 Transformations ponctuelle non-linéaire


3.4.1 Transformation Gamma
Dans de nombreuses caméras et dispositifs d’affichage (téléviseurs à écran plat par exemple), il est
utile de pouvoir augmenter ou diminuer le contraste dans les niveaux de gris foncé et les niveaux de gris
clair individuellement car les humains ont une perception non linéaire du contraste. Une transformation
non linéaire couramment utilisée est la correction gamma, qui est définie pour γ positif comme :

g(x, y) = f (x, y)γ

Certaines courbes de l’opérateur gamma sont illustrées dans la Figure 3.10.


Pour γ = 1, nous obtenons une transformation d’identité. Pour 0 ≤ γ ≤ 1 , nous augmentons la
dynamique dans les zones sombres en augmentant les mi-niveaux. Pour γ ≥ 1, nous augmentons la
dynamique dans les zones claires en diminuant les mi-niveaux (Figure 3.11).
La correction γ est défini de sorte que les valeurs des pixels d’entrée et de sortie soient dans la
plage [0, 1]. Il est donc nécessaire de transformer d’abord les valeurs des pixels d’entrée en divisant

37
0 0.2 0.4 0.6 0.3 1

Pixel value in

positive y as
CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE
4.2 Non-linear Gray-Level Mapping 806, J’) = f(x, y)y 47 (45)
Fig. 4.5 Gamma-mapping
curves forSome gamma-mapping
different gammas curves are illustrated in Fig. 4.5. For y = 1 we get the iden-
tity mapping. For 0 < y l
increase the dynamics in the dark areas by in-
< we
creasing the mid—leve1s. For y
> 1 we increase the dynamics in the bright areas by
decreasing the mid—leve1s. The gamma mapping is defined so that the input and out-
put pixel values are in the range [0, 1]. It is therefore necessary to first transform the
input pixel values by dividing each pixel value with 255 before the gamma trans-
formation. The output values should also be scaled from [0, 1] to [0, 255] after the
gamma transformation.
A concrete example is given. A pixel in a gray—scale image with value vin = 120
is gamma mapped with y = 2.22. Initially, the pixel value is transformed into the
interval [0, 1] by dividing with 255, v1 = 120/255 = 0.4706. Secondly, the gamma
mapping is performed D2 = 0.4706222 = 0.1876. Finally, it is mapped back to the
interval [0, 255] giving the result vout = 0.1876 255 = 47. Examples are illustrated
-

positiveinγ Fig.
as 4.6. Figure 3.10: Courbes correction γ pour différents γ

g(x, y) = f (x, y)γ (4.5)

Some gamma-mapping curves are illustrated in Fig. 4.5. For γ = 1 we get the iden-
tity mapping. For 0 < γ < 1 we increase the dynamics in the dark areas by in-
creasing the mid-levels. For γ > 1 we increase the dynamics in the bright areas by
decreasing the mid-levels. The gamma mapping is defined so that the input and out-
put pixel values are in the range [0, 1]. It is therefore necessary to first transform the
-

Gamma value: 0.45‘


input pixel values by dividing each pixel valueNowith 255 before the gamma trans-Gamma value: 2.22
gamma correction
formation. The output values should also be scaled from [0, 1] to [0, 255] after the
Fig. 4.63.11:
Figure Gamma mappingde
Résultat to the left with y = de
l’application 0.45laand to the right γwith
correction y =différentes
avec 2.22. In the middle
valeurs
gamma transformation.
the original image
A concrete example is given. A pixel in a gray-scale image with value vin = 120
is gamma mapped with γ = 2.22. Initially, the pixel value is transformed into the
interval [0, 1] by dividing with 255, v1 = 120/255 = 0.4706. Secondly, the gamma
chaque valeur de pixel par 255 avant la transformation γ. Les valeurs de sortie doivent également être
mapping is performed v2 = 0.47062.22 = 0.1876. Finally, it is mapped back to the
mises à l’échelle [0,
interval de255] 1] à [0,
[0, giving out = 0.1876
result vaprès
the 255] · 255 = 47. Examplesγ.are illustrated
la transformation
in Fig. 4.6.

3.4.2 Transformation Logarithmique


Chaque pixel est remplacé par le logarithme de la valeur du pixel. Cela a pour effet d’améliorer les
valeurs des pixels de faible intensité. Il est souvent utilisé dans les cas où la dynamique de l’image est
trop grande pour être affichée ou dans les images où il y a quelques points très lumineux sur un fond
Fig. 4.6 Gamma mapping to the left with γ = 0.45 and to the right with γ = 2.22. In the middle
plus sombre. Comme
the original image le logarithme n’est pas défini pour 0, la transformation est définie comme :

g(x, y) = C × log(1 + f (x, y))

Où C est une constante de mise à l’échelle qui garantit que la valeur de sortie maximale est 255.
Elle est calculée comme :

255
C= log(1+vmax )

Où vmax est la valeur maximale dans l’image d’entrée.


Cette transformation étirera clairement les pixels de faible intensité tout en supprimant le contraste
des pixels de haute intensité (Figure ??.

Figure 3.12: Résultat de la correction logarithmique

38
CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE

3.4.3 Transformation Exponentielle


Elle est décrite par la formule suivante :

g(x, y) = C × (k f (x,y) − 1)

Où k est un paramètre qui peut être utilisé pour changer la forme de la courbe de transformation et
c est une constante de mise à l’échelle qui garantit que la valeur de sortie maximale est 255.
255
C= kvmax −1

Où vmax est la valeur maximale dans l’image d’entrée. k est un nombre supérieur à 1, cela améliorera
les détails dans les zones claires tout en diminuant les détails dans les zones sombres (Figure 3.13).

Figure 3.13: Résultat de la correction exponentielle

3.4.4 Étirement de l’histogramme


Soit une image présentant un histogramme concentré dans 1’intervalle [a, b]. Les valeurs a, b cor-
respondent aux niveaux de gris extrêmes présents dans cette image. L’étirement de la dynamique
consiste a étendre la dynamique de 1’image transformée à l’étendue totale [0, 255]. La transformation
de l’étirement est donc une application affine qui s’écrit :
255
g(x, y) = fmax −fmin (f (x, y) − fmin )
4.3 The Image Histogram 53

Fig. 4.13 An example of histogram stretching


Figure 3.14: Étirement d’histogramme

Conceptually it might be easier to appreciate the equation if we rearrange Eq. 4.3:


Tout d’abord l’histogramme est déplacé vers la gauche de sorte que fmin soit situé à 0. Ensuite,
chaque valeur est multipliée par un facteur
g(x, y) =
a255de ·sorte que la valeur maximale
f (x, y) − f1 · a ⇔ (4.10)
fmax devient égale à
f2 − f1
255 (Figure 3.14). 255  
g(x, y) = · f (x, y) − f1 (4.11)
f2 − f1

3.4.5 Égalisation d’histogramme


First the histogram is shifted left so that f1 is located at 0. Then each value is
multiplied by a factor a so that the maximum value f2 − f1 becomes equal to 255.
In Fig. 4.13 an example of histogram stretching is illustrated.
L’égalisation de l’histogramme esthasbasée
If just one pixel the valuesur
0 andune transformation
another deswillniveaux
255, histogram stretching not de gris non linéaire
work, since f2 − f1 = 255. A solution is modified histogram stretching where small
utilisant un histogramme cumulé(Figure 3.15). Soit H(i) un histogramme où i est l’indexe des
bins in the histogram are removed by changing their values to those of larger bins.
niveaux de gris(entre 0 etBut
255). L’histogramme
if a significant number of pixels cumulé estanddéfini
with very small par
very high laexit,
values formule
we suivante :
still have f2 − f1 = 255, and hence the histogram (and image) remains the same, see
Fig. 4.15. A more robust method to improve the histogram (and image) is therefore
to apply histogram equalization.
39

4.3.2 Histogram Equalization


CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE

Figure 3.15: Histogramme cumulé

j
P
C(j) = H(i)
i=0

La transformation d’égalisation est construite de telle façon que l’histogramme de l’image trans-
formée soit le plus plat possible. Cette technique améliore 1e contraste et permet d’augmenter artifi-
ciellement la clarté d’une image grâce à une meilleure répartition des intensités relatives (Figure 3.16).

Figure 3.16: Résultat de l’application de l’égalisation de l’histogramme

3.5 Transformations géométriques


Après une transformation géométrique, l’image est transformée en une nouvelle image notée g(x0 , y 0 ),
où (’) signifie les nouvelle coordonnées de (x, y). Une transformation géométrique calcule essentielle-
ment où le pixel à la position (x, y) dans f (x, y) sera situé en g(x0 , y 0 ). C’est-à-dire une transformation
de (x, y) à (x0 , y 0 ).
(
x0 = Ax (x, y)
y 0 = Ay (x, y)

Les transformations géométriques fait référence aux trois opérations : translation, rotation et
mise à l’échelle.

3.5.1 Translation
La translation consiste simplement à déplacer l’image horizontalement et verticalement avec un
décalage donné (mesuré en pixels) noté ∆x et ∆y.Elle est décrite par la formule suivante :
" # " # " #
x0 = x + ∆x x0 x ∆x
⇒ = +
y 0 = y + ∆y y0 y ∆y

Donc, si x = 100 et y = 100, alors chaque pixel est décalé de 100 pixels dans les directions x et y.

40
CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE

3.5.2 Mise à l’échelle


Lors de la mise à l’échelle d’une image, cette dernière est retailler par rapport à la direction x
et/ou y (300 × 200 → 600 × 100). La direction x prend le facteur Sx = 600/300 = 2, tandis que la
direction y le facteur Sy = 100/200 = 1/2. La mise en échelle est décrite de la manière suivante :
" # " #" #
x0 = x · Sx
102 Chapter 2 Digital Image Fundamentals x0 Sx 0 x
⇒ =
y0 = y · S
y ( x , y ) of the corresponding pixel y0
y 0 S y
puting the spatial location ′ ′ in the output image
using Eq. (2-45) directly. A problem with the forward mapping approach is that two
0 0
Cela veut direor que
morelepixels
pixelin(x,
they) va prendre
input image canles becoordonnées
transformed to(xthe , ysame
). location in the
output image, raising the question of how to combine multiple output values into a
single output pixel value. In addition, it is possible that some output locations may
3.5.3 Rotation not be assigned a pixel at all. The second approach, called inverse mapping, scans
the output pixel locations and, at each location ( x ′, y ′), computes the corresponding
Lors de la rotation
locationd’une image,(Figure),
in the input image using (nous A−1 ( x ′, ydéfinir
x, y) =devons l’angle
′). It then de rotation
interpolates θ de chaque pixel
(using one
of the techniques discussed in Section 2.4) among
f (x, y). Cette transformation est d’écrite par la formule suivante : the nearest input pixels to deter-
mine the intensity of the output pixel value. Inverse mappings are more efficient to
implement
x0 = x · than
cos θforward mappings, and are
x0 used in cos numerous commercial imple-
" # " #" #
− y · sin θ θ − sin θ x
⇒ (for example,
mentations of spatial transformations = MATLAB uses this approach).
y 0 = x · sin θ + y · cos θ y0 sin θ cos θ y

TABLE 2.3 Transformation Coordinate


Affine Affine Matrix, A Example
Name Equations
transformations
based on y′
Identity 1 0 0 x′ = x
Eq. (2-45). y′ = y
0 1 0
0 0 1
x′
y′
Scaling/Reflection cx 0 0 x′ = cx x
(For reflection, set one
0 cy 0 y′ = c y y
scaling factor to −1
and the other to 0) 0 0 1
x′
4.5Rotation
Logic (about
Operations on Binary Images y′63
the cos u sin u 0 x′ = x cos u − y sin u
origin) y′ = x sin u + y cos u
sin u cos u 0
The number of neighborhood pixels to include in the calculation of the average
0 0 1
image depends on the nature of the uneven illumination, but in general itx′should be a
very high number. The method assumes the foreground objects of interest are small y′
Translation ⎡1 0 t x ⎤ x′ = x + t x
compared to the background.
⎢ 0 1The ⎥ more this assumption is
y′ = y + t y
violated, the worse the
ty
method performs. ⎢ ⎥
⎢0 0 1 ⎥ ⎣ ⎦
x′
y′
Shear (vertical) ⎡ 1 svLes
0⎤ x′ = x + sv y
4.5 LogicFigure
Operations
3.17:

on Binary Images
⎥ transformations géométriques
0 1 0 y′ = y
⎢ ⎥
⎣⎢ 0 0 1 ⎦⎥
After thresholding we have a binary image consisting of only white x′ pixels (255)
and black pixels (0). We can combine two binary images using logic operations.
3.6 Opérations Shear
The basic logiclogiques
operations ⎡are
(horizontal) 0sur
1 NOT, lesOR,
0 ⎤ AND, images =x
andx′ XOR binaires
(exclusive OR). The NOT
y′
⎢s 1 0⎥ y ′ = s x + y
operation do not combine two ⎢ h images ⎥ but only works on one at a time. NOT simply
h

Ces opérations vont


means to être
invertutiliser sur⎣⎢ 0image.
the binary 0 1 ⎦⎥
des imageThat binaire (Noir/Blanc)
is, if a pixel has the value issu
0 indethe
x′
l’opération
input it de seuillage.
will have the value 255 in the output, and if the input is 255
Nous pouvons combiner deux images binaires à l’aide d’opérations logiques de base ne sont NON the output will be 0.
The three other basic logic operations combine two images into one output. Their
(NOT ), ET (AND), OU(OR)
operations et OU
are described using exclusif
a so-called(XOR). Les Below
truth table. résultats de tables
the three de vérités des trois
truth tables
are listed.
opérations logiques de base, AND, OR et XOR sont reportés sur la Figure 3.18.

DIP4E_GLOBAL_Print_Ready.indb 102 6/16/2017 2:02:48 PM

Figure 3.18: Les tables de vérités


A truth table is interpreted in the following way. The left-most column contains
the possible values a pixel in image 1 can have. The topmost row contains the pos-
sible values a pixel in image 2 can have. The four remaining values are the output 41
values. From the truth tables we can for example see that 255 AND 0 = 0, and 0 OR
255 = 255. In Fig. 4.24 a few other examples are shown. Note that from a program-
CHAPITRE 3. TRAITEMENTS DE BASES SUR L’IMAGE
64 4 Point Processing

Fig. 4.24 Different logic


operations

Figure 3.19: Résultats des opérations logiques


Other arithmetic operations can also be used to combine two images, but most
often addition or subtraction are the ones applied. No matter the operation image
Le résultat
arithmetic worksdeequally
l’application
well for de ces opérations
gray-scale and colorsur des images binaires est présenté par la Figure 3.19.
images.
When adding two images some of the pixel values in the outputdes
On peut réaliser à l’aide de ces opérations et en combinant images
image mightbinaires et en niveau de gris
haveopérations
des values above de255. For example
masquage 1 (10, 10) = 150 and f2 (10, 10) = 200, then
if f3.20.
Figure
g(10, 10) = 350. In principle this does not matter, but if an 8-bit image is used for
the output image, then we have the problem known as overflow. That is, the value
cannot be represented. A similar situation can occur for image subtraction where a
negative number can appear in the output AND image. This is known as underflow.
One might argue that we could simply use a 16 or 32-bit image to avoid these
problems. However, using more bit per pixel will take up more space in the computer
memory and require more processing power from the CPU. When dealing with
many images, e.g., video data, this canFigure be a problem.
3.20: Résultat du masquage
The solution is therefore to use a temporary image (16-bit or 32-bit) to store
the result and then map the temporary image to a standard 8-bit image for further
processing. This principle is illustrated in Fig. 4.25.
This algorithm is the same as used for histogram stretching except that the mini-
mum value can be negative:
1. Find the minimum number in the temporary image, f1
2. Find the maximum number in the temporary image, f2
3. Shift all pixels so that the minimum value is 0: gi (x, y) = gi (x, y) − f1
4. Scale all pixels so that the maximum value is 255: g(x, y) = gi (x, y) · f2255 −f1
where gi (x, y) is the temporary image.

42