0% ont trouvé ce document utile (0 vote)
48 vues177 pages

Traitement des données d'images numériques

Le document traite des concepts fondamentaux du traitement d'images, y compris la perception visuelle, les types d'images, et les processus de numérisation. Il aborde également les techniques de traitement d'images, telles que l'échantillonnage spatial et la quantification des niveaux de gris, ainsi que les opérations ponctuelles pour améliorer les images. Enfin, il présente les applications des traitements d'images dans divers domaines, notamment la médecine et l'analyse numérique.

Transféré par

Bouayad Yassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
48 vues177 pages

Traitement des données d'images numériques

Le document traite des concepts fondamentaux du traitement d'images, y compris la perception visuelle, les types d'images, et les processus de numérisation. Il aborde également les techniques de traitement d'images, telles que l'échantillonnage spatial et la quantification des niveaux de gris, ainsi que les opérations ponctuelles pour améliorer les images. Enfin, il présente les applications des traitements d'images dans divers domaines, notamment la médecine et l'analyse numérique.

Transféré par

Bouayad Yassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Traitement d’images

BIBDA

A. El moutaouakkil
elmou01@[Link]

1
Quelques notions sur la perception
Lumière, scène, optique et image
Haytham Ibno Haytham

Surface Optique
Sources et types de l’image
 Images en émission (cas des sources infra-
rouges) ;
 Images en transmission = absorption (cas
des rayons X) ;
 Images en réflexion : cas le plus courant
Processus physiques
et formation d’image
 Radiométrie
 Principes physiques de la réflectance des objets
 Relation entre la lumière émise par une source et
la quantité de lumière qui parvient au capteur

 Photométrie
 Mécanisme pour mesurer la quantité de lumière
qui arrive au capteur

 Numérisation
 Échantillonnage dans l’espace et le temps pour
produire une image numérique
Du système visuel humain
au système de vision numérique
Système visuel humain
Système visuel humain (suite)
Système visuel humain (suite)
Chaîne d’acquisition et d’affichage
d’images numériques
Traitements Stockage

Stockage

Visualisation

Numérisation Acquisition
Echantillonnage
Définition d’une image
 Image physique : généralement
analogique
 Image continue (ne pouvant être traitée
par un ordinateur)

 Image informatique : numérique


 Image discrète (se prêtant à un traitement
sur ordinateur)
Image numérique
Pour pouvoir être traitée sur un calculateur (ordinateur),
une image doit être:

 discrétisée (en espace et en amplitude).

 La discrétisation des coordonnées spatiales (x,y)


est appelée échantillonnage spatial de l’image.

 La discrétisation de l’amplitude f est appelée la


quantification en niveau de gris.
Echantillonnage spatial
(discrétisation de l’espace)
 En mathématique, le terme d’image se réfère à une fonction bi-
dimensionnelle d’intensité : f(x,y)
où :
f est l’amplitude de l’intensité de l’image (x, y) est un point dans un
espace 2D (plan image).

 En 2D :
f(x,y) est représenté par une matrice de MxN éléments,
 Chaque élément f(i,j) de cette matrice image est appelé un
pixel (picture element).

 En pratique, M=N, et N est un multiple de 2 (N=2n). N est


appelé la dimension de l’image.

 En 3D :
f(i,j,k) = matrice de voxels.
Echantillonnage spatial
(discrétisation de l’espace)

 Théorie de l’échantillonnage :
 L’image est considérée comme un ensemble
d’impulsions de Dirac où chaque impulsion est au
centre du pixel et a pour amplitude l’intensité du
pixel.
 f(x,y)=I(x,y)SmSn d(x-mDx,y-nDy)
 Echantillonnage carré le plus fréquent
Echantillonnage spatial
(discrétisation de l’espace)
Echantillonnage et résolution
N=4 N=8 N=16

g g g

g g g

N=128 N=64 N=32


Discrétisation de l’amplitude
(quantification des niveaux de gris)
 La valeur de f(i,j) est quantifiée sur m bits (éléments
binaires) et peut ainsi prendre 2m valeurs entières

0  f ( x, y )  255  8 bits
0  f ( x, y )  65635  16 bits
Quantification
Tableaux, Pointeurs
Fichiers et images 2D et 3D

Pour pouvoir faire du


traitement d’images

19
Rappel sur les pointeurs

ptr 0 1 2 3 4 5 6 7

unsigned char *ptr;


unsigned char car;

ptr = (unsigned char *) malloc(8);


car = ptr[1];
car = *(ptr+1);
Rappel sur les pointeurs
0 1 2 3 4 5 6 7

0
ptr 1

5
Rappel sur les pointeurs
char **ptr; /* *ptr[] */
char *ptr_char; /* ptr_char[] */
char car;

ptr = (unsigned char **) malloc(sizeof(unsigned char *) * 6);

For(i=0;i<6;i++)
ptr [i] = (unsigned char *) malloc(sizeof(unsigned char) * 8);

ptr_char = ptr [1]; /* = *(ptr+1); */

car = ptr [1] [1]; /* = *(*(ptr+1)+1); */


car = ptr_char [1]; /* = *(ptr_char+1); */
Rappel sur les pointeurs
 Correspondance 2D et 1D
0 1 2 3 4 5 6 7
Tableau 2D
0
1
2
3
4
5

0 1

Vecteur 1D
Rappel sur les fichiers
/* OUVERTURE, LECTURE ET FERMETURE DE FICHIER */
FILE *fp1;

fp1 = fopen(“c:\travail\[Link]”,“rb”); //argv[1]


For(i=0;i<H;i++)
fread(ptr[i],sizeof(unsigned char),8,fp1);
fclose(fp1);

Ou
fp1 = fopen(argv[1],“r”);
fread(vec,sizeof(unsigned char),6*8,fp1);
fclose(fp1);
Rappel sur les fichiers
/* OUVERTURE, LECTURE ET FERMETURE DE FICHIER */
FILE *fp1;

fp1 = fopen(“c:\travail\[Link]”,“rb”); //argv[1]


for(i=0;i<H;i++)
for(j=0;j<H;j++)
fread(&ptr[i][j],sizeof(unsigned char),1,fp1);
fclose(fp1);
Rappel sur les fichiers
Écriture et lecture de données dans un fichier en mode
binaire

fread, fwrite

Syntaxe: fread(&n,taille d'un bloc,nombre de blocs,fichier_pt);


ou fwrite(&n,taille d'un bloc,nombre de blocs,fichier_pt);

fread et fwrite fournissent respectivement le nombre de blocs lus ou écrits .


- n est la variable lue ou écrite
- taille d'un bloc est la taille en octets de la variable sizeof(n).
- nombre de blocs est le nombre de variables que l'on désire lire ou écrire
- fichier_pt est le pointeur de flux
26
Rappel sur les fichiers
Fseek
fseek(fichier_pt,taille*(num-1),par); /*déplacement dans un fichier*/
- taille est le nombre d'octets de la variable
- num numéro de la variable où on veut se placer. Exemple: 2*(num-1) pour des entiers
courts.
- par est un paramètre: 0 déplacement depuis le début du fichier
1 déplacement a partir de la position courante
2 déplacement à partir de la fin du fichier
fteel
fteel(fichier_pt) ; /*position courante du pointeur en octets*/
Les instructions suivantes donnent la taille d'un fichier:
fseek(fichier_pt,0,2);
taille=fteel(fichier_pt);

feof
Syntaxe: feof(fichier_pt) /* détection de fin de fichier*/
27
Retourne une valeur non nulle (vraie) si une fin de fichier a été trouvée sinon zéro (faux)
Matrice 2D et image
j

i
 Une image est avant tout un signal 2D (x,y)
 Souvent, cette image représente une réalité 3D
(x,y,z)
 D'un point de vue mathématique :
o Une image est un matrice de nombres représentant un
signal
o Plusieurs outils permettent de manipuler ce signal
 D'un point de vue humain :
o Une image contient plusieurs informations sémantiques
o Il faut interpréter le contenu au-delà de la valeur des
nombre
 Image naturelle – Plusieurs moyens d'acquisition
caméra, microscope, tomographie, infra-rouge, satellite, …
 Image artificielle – Plusieurs outils de représentation
synthèse d'images, réalité virtuelle, visualisation scientifique, …

Image naturelle Image artificielle


Image artificielle
Trois principaux types d'images

•Image binaire I(x,y) Є {0, 1}

•Image en niveaux de gris I(x,y) Є [0, 255]


•Image en couleurs (3 valeurs par pixel)
IR(X,y), IV(X,y), IB(X,y)
I(x,y) = IR(x,y) + IV(x,y) + IB(x,y)

… et plus encore (image 3D, image réelle, …)


 Maillage :
Le maillage est l'arrangement géométrique des pixels dans l'image.
On utilise généralement un des trois types qui résultent de
différentes tessélations du plan par des figures géométriques. Tout
d'abord, le maillage carré qui correspond à la réalité physique du
capteur CCD. On peut également utiliser un maillage hexagonal
(maillage de référence pour le domaine de la morphologie
mathématique). Le maillage triangulaire est plus confidentiel.
 Distance : Tout pixel d'une image est caractérisé par un
couple de coordonnées (x,y). On peut donc calculer des
distances entre pixels. Les distances les plus courantes sont
(pour deux pixels P(xp,yp) et Q(xq,yq)):
 distance de Manathan : d1(P,Q)=|xp - xq| + |yp - yq|
 distance euclidienne : d2(P,Q)=[(xp - xq)2 + (yp - yq)2]1/2
 distance de l'échiquier : dinf(P,Q)=Max(|xp - xq| , |yp - yq|)
 Ces distances sont reliées par la propriété :
dinf(P,Q) <= d2(P,Q) <= d1(P,Q)
 Voisinage :
On appelle voisinage d'ordre k du pixel P et l'on note Vk(P)
l'ensemble des pixels Q définit par:
Vk(P) = { Q : 0 < d(P,Q) <= k }

 Ordre de connexité :
Il existe principalement deux ordres de connexité :
4 et 8. Ce nombre correspond à la taille du plus
petit voisinage non vide d'un pixel. Un pixel a 4
voisins directs si l'on choisit la distance d1, il en a 8
avec la distance dinf.
• Ordre de connexité :
• En 2-D , maille carrée:
(i-1,j-1) (i-1,j) (i-1,j+1)

(i,j-1) (i,j) (i,j+1)

• En 3-D (i+1,j-1) (i+1,j)


(i+1,j+1
)

• 6-connexité
• 18-connexité
• 26-connexité
Image, traitement d’images et
autre disciplines

Analyse
Théorie du numérique Statistique
signal

Informatique Traitement
Théorie de
d’images l’information

Electronique Neurophysiologie
Théorie des psychophysique
Optique systèmes
Image, traitement d’images et
domaines d’applications

Diagnostique
médical
Image et traitement d’images
– Image = information issue d'un capteur de vision (œil, caméra)

– TI = ensemble des opérations sur les images


numériques, qui transforment une image en une autre
image, ou en une autre primitive formelle.
Image et traitement d’images
 Modèles fondamentaux
 Modèle linéaire (convolution)
 Modèle fréquentiel (fourier ...)
 Modèle statistique (histogramme, entropie ...)
 Modèle différentiel (gradient, EDP ...)
 Modèle ensembliste (morphologie ...)
 Modèle locale (maillage, connexité, distance ...)
Traitements de base d’une image
Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Forme générale

 g(x,y)=Pf(x,y)+L

 Il faut éviter g(x,y)<0 et g(x,y)>K-1

 Où K-1= intensité maximale (255, souvent)


Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Décalage additif
 Contrôle de la luminosité
 Ici P=1 et –(K-1)<= L <= K-1
 g(x,y)=f(x,y)+L
L=100

L=-100
Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Mise à l’échelle multiplicative

 Ici L=0 et P>0


 Modifie la luminosité et le contraste
 g(x,y)=Pf(x,y)
P=O.5

P=1.5
Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Inversion

 Ici P=-1 et L=255


 g(x,y)= -f(x,y)+255

Inversion
Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Amélioration du contraste

 On étire l’histogramme pour qu’il utilise toute la plage disponible


 On pose A=min(f(x,y)) et B=max (f(x,y))
 On veut que les nouvelles limites soient A’ et B’
 On cherche PA+L=A’ et PB+L=B’
 2 éq et 2 inconnues : P et L P=(B’-A’)/(B-A)
L=(A’B-AB’)/(B-A)
Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Amélioration du contraste

Original Contrasté
Traitements de base d’une image
Opérations ponctuelles

Opérations ponctuelles linéaires


Amélioration du contraste

Original Contrasté
Traitements de base d’une image
Opérations ponctuelles

Histogramme des niveaux de gris


( distribution des niveaux de gris)
Traitements de base d’une image
Opérations ponctuelles

Histogramme
 Pour chaque niveau de gris, compter le nombre de pixels s’y référant
 Pour chaque niveau, tracer le graphe en bâton du nombre de pixels
(possibilité de regrouper les niveaux proches en une seule classe)

Image de 256  256 pixels, Population de pixels pour chaque


codés chacun sur 8 bits niveaux de gris [0 ; 255]
Exemple simple de calcul d’histogramme pour une image

Image « A » en Matrice des valeurs de luminance Histogramme de


niveaux de gris des pixels de l’image « A » l’image « A »

2 2 2 2 2 2 2 2
2 0 0 0 0 0 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 1 1 1 1 0 2
2 0 1 0 0 1 0 2
2 0 0 0 0 0 0 2
2 2 2 2 2 2 2 2

 L'image « A » comporte 3 niveaux de gris différents : 0, 1 et 2.


 Compter le nombre de pixels pour chaque niveau de gris, à
l’aide de la matrice des valeurs de luminance.
 Les niveaux 0, 1 et 2 sont respectivement représentés par 24, 12 et 28
pixels  représentation de cette population de pixels sur l'histogramme.
Traitements de base d’une image
Opérations ponctuelles

Histogramme des niveaux de gris pour une images 2D


SCÈNE DE FAIBLE RADIANCE SCÈNE DE FORTE RADIANCE

% %

niveaux de gris niveaux de gris

SCÈNE DE BAS CONTRASTE SCÈNE DE HAUT CONTRASTE

% %

niveaux de gris niveaux de gris


Etirement d’Histogramme

%
étirement de l’histogramme = ?amélioration du
contraste

niveau de gris après


transformation
GL’

niveau de gris avant


transformation transformation
GL des niveaux de gris
Traitements de base d’une image
Opérations ponctuelles

Etirement d’histogramme
gl' gl '  m  gl  b
255 PIXMAX 255
m 
max  min max  min
 PIXMAX  min 
gl1' b   
 max  min 
PIXMAX  PIXMAX  min 
0 gl '  gl   
gl1 gl
max  min  max  min 
min max
PIXMAX
gl '  ( gl  min)
PIXMAX gl ' max  min

max  min gl  min
PIXMAX
gl '  ( gl  min)
max  min
Traitements de base d’une image
Opérations ponctuelles

Amélioration du contraste [densité de probabilité cumulé]


Transformation par égalisation d’histogramme
hi , i  0,255 Histogramme non-normalisé
hi 
hn i   Histogramme normalisé
DIMX  DIMY
i
C i    hn  j  Histogramme normalisé cumulé
j 0 (Densité de probabilité cumulative)
f ' ( x, y )  C  f ( x, y ) PIXMAX
C  f ( x, y ) 0,1
Traitements de base d’une image
Opérations ponctuelles

Amélioration du contraste
Égalisation de l’histogramme [densité de probabilité cumulative]

GL’
%

GL GL’
min max

* C i 

0 255
min max
Traitements de base d’une image
Opérations ponctuelles

Amélioration du contraste
Égalisation de l’histogramme
D: Dynamique
H C ( f ( x , y ))
(w,h): Dimension de l’image f ( x , y )'  ( 2 D  1 )
wh
HC(.): Histogramme cumulé
Segmentation des images
par seuillage
 Segmentation par seuillage
 Choix des seuils
 Manuel
 Par inspection de l’histogramme
Segmentation par seuillage
Segmentation par seuillage
 Seuillage simple

for (i=0;i<H;i++)
for (j=0;j<L;j++)
{
if(ima[i][j]<seuil)
ima[i][j]=0;
else
ima[i][j]=255;
}
Segmentation par seuillage
binaire
Opérations ponctuelles
sur plusieurs images

 Somme d’images
 Ajout de bruit, fusion d’images,...
 Soustraction d’images
 Élimination de l’arrière-plan, dérivation par
rapport au temps,…
 Moyenne point à point d’images
 Réduction du bruit
Opérations ponctuelles
Les sources de bruit

 Bruits liés aux conditions de prise de vues


 Ce sont des événements vérifiant les
conditions d’acquisition du signal
 Le bougé
 Problèmes liés à l’éclairage de la scène observée
 Bruits liés au capteur
 Capteur mal réglé
 Capteur de mauvaise qualité
Opérations ponctuelles
Les sources de bruit
 Bruits liés à l’échantillonnage
 Ces bruits reflètent essentiellement des
problèmes de quantification (CCD)
 Précision d’environ 1/512
 Problèmes dans le cas d’applications de grande
précision
 Bruits liés à la nature de la scène
 Nuage sur les images satellitaires
 Poussières dans les scènes industrielles
 Brouillard pour les scènes routières
Opérations ponctuelles
 Réduction du bruit par moyennage
 Soit n images d’une même scène, chaque image
peut s’exprimer gi(x,y)=f(x,y)+bi(x,y)
 f(x,y) est l’image non bruitée
 bi(x,y) est un bruit blanc non corrélé
1 n
 g(x,
b y)   g b i (x, y) = 0
n i 1
1 n

g(x, y)  ((bg i (x, y) + f(x,y) )
n i 1
1 n
 g(x, y)  
n i 1
g
b i (x, y) + n f(x,y)/n = f(x,y)
Si bruit non blanc ?

 Différents types de bruit


 Comment est généré b(i) ?
 Loi gaussienne
 Loi uniforme
 Aléatoire

 Principaux types de bruit


 Gaussien
 Poivre et sel
Opérations locales
Transformation basée sur le voisinage d’un point (x ,y)

transformation

0 0 0 0 0000000
0 0
  (x,y) 0
0
0
0
0 0
0 0
0 0
0 0
0 0
0 0 0 0 0000000

Image originale Image traitée


Opérations locales
Transformation par convolution
DF 2 DF 2
g ( x, y )    f ( x  m, y  n)  PSF ( DF
2  m, 2  n)
DF

m  DF n  DF
2 2
filtre normalisé Point Spread Function

1 1 1 1/9 1/9 1/9 w1 w2 w3 

DF ou
1/9 X 1 1 1 = 1/9 1/9 1/9 w4 w5 w6  Dimension
1 1 1 1/9 1/9 1/9 w7 w8 w9
 Filtre : 3
résultat divisé par la somme
des poids [wx] du filtre (P-B)
ou son nombre de pixels (P-H)
Opérations locales
Transformation par convolution

I * K

Noyau de convolution

Image
Opérations locales
Convolution numérique R = I*K
K

I R

R(1,1) = I(0,0) K(0,0) + I(1,0) K(1,0) + I(2,0) K(2,0)


+ I(0,1) K(0,1) + I(1,1) K(1,1) + I(2,1) K(2,1)
+ I(0,2) K(0,2) + I(1,2) K(1,2) + I(2,2) K(2,2)
Opérations locales
Convolution numérique R = I*K
K

I R

R(2,1) = I(1,0) K(0,0) + I(2,0) K(1,0) + I(3,0) K(2,0)


+ I(1,1) K(0,1) + I(2,1) K(1,1) + I(3,1) K(2,1)
+ I(1,2) K(0,2) + I(2,2) K(1,2) + I(3,2) K(2,2)
Opérations locales
Convolution numérique R = I*K

K
I R

R(x,y) = I(x-1,y-1) K(0,0) + I(x, y-1) K(1,0) + I(x+1, y-1) K(2,0)


+ I(x-1,y) K(0,1) + I(x,y) K(1,1) + I(x+1,y) K(2,1)
+ I(x-1,y+1) K(0,2) + I(x,y+1) K(1,2) + I(x+1,y+1) K(2,2)
Opérations locales
Convolution numérique R = I*K

I R

R(N-2,M-2) = I(N-3,M-3) K(0,0) + I(N-2,M-3) K(0,1) + I(N-1,M-3) K(0,3)


+ I(N-3,M-2) K(1,0) + I(N-2,M-2) K(1,1) + I(N-1,M-2) K(1,2)
+ I(N-3,M-1) K(2,0) + I(N-2,M-1 )K(2,1) + I(N-1,M-1) K(2,2)
Opérations locales
Convolution numérique
 Problème : Que faire avec les bords de l'image ?
 Mettre à zéro (0)
? ? ? ? ? ? ? ? ? ?
 Convolution partielle ? ?
 Sur une portion du noyau
? ?
 Miroir de l'image ? ?
 f(x-1,y) = f(x+1,y) ? ?
 … (pas de solution miracle) ? ?
? ?
? ?
? ?
? ? ? ? ? ? ? ? ? ?
Opérations locales
Transformation par convolution
DF 2 DF 2
g ( x, y )    f ( x  m, y  n)  PSF ( DF
2  m, 2  n)
DF

m  DF n  DF
2 2
filtre normalisé Point Spread Function

1 1 1 1/9 1/9 1/9 w1 w2 w3 

DF ou
1/9 X 1 1 1 = 1/9 1/9 1/9 w4 w5 w6  Dimension
1 1 1 1/9 1/9 1/9 w7 w8 w9
 Filtre : 3
résultat divisé par la somme
des poids [wx] du filtre (P-B)
ou son nombre de pixels (P-H)
Opérations locales
Convolution discrète

 La convolution discrète est un outil permettant la


construction de filtres linéaires ou de filtres de
déplacements invariants
 L ’équation de convolution, notée g(x), de la séquence
f(x) avec une fonction h(x) est :

 h(x) est appelée masque de convolution, noyau de convolution,


filtre, fenêtre, kernel, …
 En pratique, la convolution numérique d'une image se fera
simplement par une sommation de multiplications.
Opérations locales
Masque de convolution
 Le masque de convolution est le plus souvent
 Carré
 De taille 3x3 ou 5x5 (ou plus, mais impair)

 Ce masque représente un filtre linéaire permettant de


modifier l'image.

 La plupart du temps, on divisera le résultat de la


convolution par la somme des coefficients du masque.
 Pour éviter de modifier l'entropie de l'image, la somme des
coefficients doit être égale à 1.
 Dans le cas du Laplacien (plus loin), la somme sera égale à zéro.
Opérations locales
Filtre de moyenne (passe-bas)

00 FF transition

Lissage(flou apparent)
1 1 1 1 1
1 1 1 1 1 N.B. plus le filtre grossit ,
1/25 X 1 1 1 1 1 plus le lissage devient important
1 1 1 1 1 et plus le flou s’accentue !
1 1 1 1 1
Opérations locales
Filtre de détection de contour (passe-haut)

00 FF transition

contour (limite entre


 1 1 1
 1 8 1 2 zones )
 
 1 1 1
Opérations locales

 Filtres passe-bas
 Filtre de moyenne
 Filtre Gaussien
 Triangle de Pascal
 Autres filtres
 Moyenne versus médiane
 Filtre médian
 Filtre adaptatif
 Filtres passe-haut
 Opérateurs mathématique
 Masque de détection
 Gradient
 Laplacien
 Kirsch
 Marr-Hildreth
Opérations locales
Typologie des Filtres

Pour accélérer les traitements, il est possible de décomposer les filtres en sous-
filtres équivalents qu’on passe un après l’autre.
Opérations locales
Typologie des Filtres
Opérations locales
Typologie des Filtres : suite

 La mise en cascade de filtres (associativité de la convolution)


permet de générer des filtres de grande taille à moindre coût
de calculs
Opérations locales
Filtres passe-bas

 Le filtre moyenne
 Permet de lisser l'image (smoothing)
 Remplace chaque pixel par la valeur moyenne
de ses voisins
 Réduit le bruit
 Réduit les détails non-important
 Rend floue l'image (blur edges)
 Filtre dont tous les coefficients sont égaux.
 Exemple de filtres moyennes :
Opérations locales
 Filtre Moyenneur
 On affecte à chaque pixel la valeur
moyenne obtenue dans le voisinage :
avec j les voisins de i
Opérations locales
Filtres passe-bas
 Plus le filtre est grand, plus on coupe les hautes fréquences (les
changements rapides)
1 1 1 1 1

1 1 1 1 1
1 1 1

1/9* 1 1 1 1/25* 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1
Opérations locales
Filtres passe-bas

 Filtre de moyenne

Image originale Image filtrée


Opérations locales
Filtres passe-bas

Original Moyenne 5x5 Moyenne 11x11


Source : [Link]/mh/115b/[Link]
Opérations locales

Filtres passe-bas

 Filtre Gaussien 1 2 1
(1/16) 2 4 2
1 2 1

1 1 1 2 1
1 1
(1/4) * (1/4) = (1/16) 2 4 2
1 1 1 1
1 2 1
1
1 2 1
(1/4) 2 * (1/4) 1 2 1 = (1/16) 2 4 2
1
1 2 1
Opérations locales

Filtre gaussien (passe-bas)

( x 2  y 2 )
1 2 2
gauss ( x, y )  PSF ( x, y )  e
2 2

fonction gaussienne 2-D

w1 w2 w3 

w4 w5 w6  Dim X = DimY = 8 + 1
w7 w8 w9  où   0,3

Opérations locales

Filtre gaussien (passe-bas)

Image d'une gaussienne


Fonction gaussienne en 3D

Le filtre gaussien donnera un meilleure lissage et une meilleure


réduction du bruit que le filtre moyenne.
Opérations locales

Exemples de filtres gaussiens

Original Gauss 5x5 Gauss 11x11


Opérations locales

Filtres passe-bas

 Triangle de Pascal
 Chaque élément est la somme des éléments supérieur et
supérieur gauche
 On choisit une ligne impaire
 On convolue un filtre horizontal avec un filtre vertical
 On obtient un filtre carré
 On normalise par la somme de tous les éléments du filtre
Opérations locales

Filtres passe-bas
 Autres filtres passe-bas

1 4 6 4 1 1 2 3 2 1 0 0 1 0 0
4 16 24 16 4 2 4 6 4 2 0 2 2 2 0
1/256 6 1/81
24 36 24 6 3 6 9 8 3 1/25 1 2 5 2 1
4 16 24 16 4 2 4 6 4 2 0 2 2 2 0
1 4 6 4 1 1 2 3 2 1 0 0 1 0 0
Filtre Gaussien ou binomial Filtre pyramidal Filtre Conique

Obtenu par la convolution de deux filtres de moyenne 3X3


Opérations locales
Filtre Médian
 Filtre non linéaire (ce n’est pas une convolution)
 Coûteux en temps de calcul
 Complexité O(nlog(n))
 On remplace le pixel central par la médiane du groupe
 Sert à éliminer les points isolés sans filtrer par un filtre passe-bas
 Plus robuste aux valeurs extrêmes

10
10 30
30 55
20
20 200
20 20
20 5 10 10 15 20 20 30 30 200

15 10
15 10 30
30
Valeurs d’intensité médiane
Opérations locales
Filtre Médian

 On affecte à chaque pixel la valeur


médiane
obtenue dans le voisinage
 On évite ainsi les valeurs extrêmes
Opérations locales
Filtre Médian
9. Traitements de base d’une image
Opérations locales

Filtre Médian
9. Traitements de base d’une image
Opérations locales

Choix du filtre
 Bruit gaussien : filtre moyenneur

 Bruit poivre et sel : filtre médian


Opérations locales

Filtres adaptatifs
Opérations locales
Filtres passe-haut: Détection de contours
 Opérations mathématiques

- =
Image originale Image filtrée passe-bas Hautes fréquences
Caractéristiques des images obtenues
par filtrage spatial

 

Lissage Rehaussement
(filtre passe-bas) (filtre passe-haut)
Opérations locales

Filtres passe-haut: Détection de contours


 Au niveau des pixels

 Ex: filtre 3X3 (à partir du filtre de

moyenne)
0 0 0 1 1 1  1 1 1
d(x, y)  h(x, y)  0 9 0   1 1 1   1 8 1
1 1 1
9  9  9 
0 0 0  1 1 1  1 1 1

 1 1 1 1 1
 1 1 1 1 1
1  
 Ex: filtre 5X5  1
25 
1 24 1 1
 1 1 1 1 1
 1 1 1 1 1
Opérations locales

Filtres passe-haut: Détection de contours


Opérations locales

Filtres passe-haut: Détection de contours


 Masque de détection
 Contour d’une ligne

 Contour d’un objet


Opérations locales

Filtre passe-haut: Détection de contours

 

Passe-bas Passe-haut
1 1 1 1 1 -1 -1 -1 -1 -1
0 0 0 0 0 0 0 1 1 11 11 11 1 11 1 -1-1-1-1 -1
-1 -1
-1-1-1-1 -1
0 0 0 0 0 0 0 1 11 1 1 1 11 1 11 -1 -1 -1
-1 -1-1-1 -1 -1
0 0 0 0 0 0 0 5924 1
1 1 11 111 11 1 11 152 -1 -1
-1 -1 -1 -1 -1-1
-1 24 -1 -1 -1
0 0 0 1 0 0 0
1 X1 1111 111 1111 11 1 1 1 -1-1 -1
X-1-1-1 -1 -1-1
8 48 -1-1
-1 -1
499 1 499 4
9 -1-1-1-1 -1
0 0 0 0 0 0 0 1 1111 111 11 1 11 -1 -1
-1 -1-1
-1 -1
0 0 0 0 0 0 0 1 1 1 1 11 1 1 -1-1 -1
-1 -1 -1-1-1 -1 -1
0 0 0 0 0 0 0 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1
Opérations locales

Filtres passe-haut: Détection de contours


 Détection de contours par gradient
 Contour = gradient élevé

 Technique en 2 étapes :

 Estimer le gradient (convolution)


 Localiser les valeurs élevées (seuillage)
Opérations locales

Filtres passe-haut: Détection de contours


 Détection de contours par gradient:Convolution
 Multiplication locale par un masque
 I’(x,y) = I(x,y) * M
Opérations locales

Filtres passe-haut: Détection de contours


 Estimation du Gradient
 Soit un pixel f(x,y), le gradient y sera

Gx = f * Mx
Gy = f * My

 La norme du gradient

 La direction du gradient
Opérations locales

Différences
Filtres passe-haut: Détection de contours
avant et
 Approximation du gradient (en x –arêtes verticales) arrière

f f (x  D x , y)  f (x, y) f (x, y)  f (x  D x , y)
 lim  lim
x D x 0 Dx D x 0 Dx
Dx  1 Masque de convolution 1 -1 ou -1 1
f f (x  D x , y)  f (x  D x , y)
 lim Différence centrée
x D x 0 2D x
Dx  1 Masque de convolution -1 0 1

 Approximation du gradient (en y –arêtes horizontales)


-1 1
Masque de convolution 1 ou -1
ou 0
ou 0
-1 1 -1
1
Opérations locales

Filtres passe-haut: Détection de contours


Filtres différentiels

00 FF 00 Image

prof il d’une
ligne
horizontale
(dérivée
première)
seconde)

(a) (b)
Opérations locales

Filtres passe-haut: Détection de contours

Dérivée première (gradient)

| Gx | + | Gy |

-1
-1 -20 -1
1
0
-2 00 02 || G
Gyx ||
1
-1 20 11
Opérations locales

Filtres passe-haut: Détection de contours

 Sobel
 Le passe-haut intensifie le bruit; on fait
donc un passe-bas pour le diminuer.
 Composition d’un filtre gaussien et d’un
gradient

 1 2 1  1 0 1 
0 0 0  2 0 2 
   
 1 2 1   1 0 1 
Opérations locales

Filtres passe-haut: Détection de contours

 Sobel (=Gaussien+Gradient)
Deux masques de taille 3x3 :

 1 2 1  1 0 1 
0 0 0  
  et  2 0 2 
 1 2 1   1 0 1 
Opérations locales

Filtres passe-haut: Détection de contours

Filtres de Prewitt et Sobel


(a) (b)
(c)
(d)Roberts
Prewitt
Sobel cross-gradient
operators
operators
-1 -2
-1 -1
ff f ((zz772zz88zz99))
z1 z2 z3 0 01 0   ( z5  z9 )
yy y((zz112zz22zz33))
z4 z 5 z 6 1 210 -1
1
z7 z8 z9
-1 0 1
où zx : valeur du ff f ((zz332zz66zz99))
-1 0 12
-2   ( z6  z8 )
niveau de gris xx x((zz112zz44zz77))
-1 -1
0 10
f f
f  Gx  Gy  
x y
Opérations locales
Opérations locales
Filtres passe-haut: Détection de contours
Amélioration des arêtes et des contours
(a) image originale
(b) image obtenue
à partir des valeurs
de magnitude du
gradient [‘masques’
de Prewitt]
(c) image originale
dont les pixels ayant
1 gradient > 25*
f f f f ont été mis à 255
* ou  25 * et  25 (d) idem à c [sauf pour
x y x y les pixels dont les
2 gradients  25*
qui ont été mis à 0
- image binaire]
Opérations locales

Filtres passe-haut: Détection de contours

 Roberts
Deux masques de taille 2x2 :

et
Opérations locales
Opérations locales
Opérations locales

Filtres passe-haut: Détection de contours

 Laplacien  
2  ( 2  2 )
 Dérivée seconde x y
 Différence centrée
 2f (x, y)
 f ' (x  1, y)  f ' (x, y)
x 2
=[f(x+1,y)-f(x,y)]-[f(x,y)-f(x-1,y)]
= f(x+1,y)-2f(x,y)+f(x-1,y)

 Noyau de convolution 1 2 1
Opérations locales

Filtres passe-haut: Détection de contours

 Laplacien (suite)
 Hautes fréquences dans toutes les directions

 1  0 1 0
 
 (  1 2 1   2  1 4 1 
2
)
x 2
y 2
 1  0 1 0 
Autres formes
 0 1 0   1 1 1
 1 4 1 Ou  1 8 1
   
 0 1 0   1 1 1
Opérations locales

Filtres passe-haut: Détection de contours

 Laplacien (suite)
 Dérivée seconde du signal image
 Localisation des contours par le passage par 0
 Différents masques :

 0 1 0   1 1 1
 1 4 1  1 8 1
   
 0 1 0   1 1 1
Opérations locales

Filtres passe-haut: Détection de contours

 Kirsch
 8 masques, dans chaque direction (45°)
Opérations locales
Filtres passe-haut: Détection de contours

 Marr-Hildreth
 Le Laplacien augmente encore plus le bruit

 On filtre l’image avec une gaussienne

 On prend le Laplacien de l’image filtrée

 On peut donc filtrer directement avec le

laplacien d’une gaussienne!


g=(f*N)*L=f*(N*L)
Opérations locales
Filtres passe-haut: Détection de contours

 Marr-Hildreth
0 -1 -2 -1 0
-1 0 2 0 -1
-2 2 8 2 -2
-1 0 2 0 -1
0 -1 -2 -1 0

-1 -3 -4 -3 -1
-3 0 6 0 -3
-4 6 20 6 -4
-3 0 6 0 -3
-1 -3 -4 -3 -1
Opérations locales

Filtres passe-haut: Détection de contours

 Marr-Hildreth versus Sobel


 Plus rapide
 Une seule convolution pour toutes les
directions
 Pas de somme de valeurs absolues ou de
racine
 Moins robuste (plus sensible au bruit)
 Non directionnel
 Donne des contours plus « fermés »
Opérations locales

Filtres passe-haut: Détection de contours

 Filtres passe-haut
 Sobel
 Marr-Hildreth
 Canny
 …
Opérations locales

Filtres passe-haut: Détection de contours

 On utilise un filtre passe-haut et on compare la


force du contour avec un seuil
Opérations locales
Filtres passe-haut: Détection de contours

 Sobel
 On applique le filtre horizontal, puis
vertical
 On somme les valeurs absolues, ou racine
carrée des carrées des valeurs
 Seuillage: si la valeur est assez élevée, la
dérivée est forte et il y’a un contour
Opérations locales

Filtres passe-haut: Détection de contours

 Marr-Hildreth
 On applique le filtre de Marr-Hildreth

 On détecte les PPZ (Passages Par Zéro)

 Seuillage particulier, sur un Kernel (souvent 3X3)


 S’il y’a changement de signe entre la valeur
centrale et un des huit voisins, alors il y’a PPZ
Opérations locales

Filtres passe-haut: Détection de contours


Opérations locales
Filtres passe-haut: Détection de contours

Canny
 Critères
 Taux d’erreur bas

 Points biens localisés

 Réponse unique pour un contour


Opérations locales

Filtres passe-haut: Détection de contours Canny


Opérations locales

Filtres passe-haut: Détection de contours

Seuillage
 Différents types de seuillage
 si ndg > sb alors ndg = 255
 si ndg < sh alors ndg = 0

 si ndg < s alors ndg = 0 sinon ndg = 255

Binarisation
Rappel
Binarisation

 Réduction du nombre de couleurs à 2 (N & B)


Rappel

Binarisation
 Comment trouver le bon seuil ?
 Localisation des modes de l’histogramme
Opérations locales

Filtres passe-haut: Détection de contours Canny

 Seuillage par Hystérésis


 On utilise 2 seuils T1 et T2 (T1<T2)
 Tous les pixels plus petits que T1 sont classés « non
contours »
 Tous les pixels entre T1 et T2 sont classés « peut-être »
 Tous les pixels plus grand que T2 sont classés « contours
»
 Tous les pixels classés « peut-être » adjacents à des
pixels contours sont classés « contours »
 On commence à suivre un contour avec un pixel >T2 et on termine par
un pixel <T1
Opérations locales

Filtres passe-haut: Détection de contours

 Seuillage par Hystérésis


Opérations locales

Filtres passe-haut: Détection de contours

 Images couleur
 Utilisation de R,G,B puis combinaison
 Autres méthodes plus robustes
Opérations locales
Filtres passe-haut: Détection de contours

Fermeture de contours
 Problème des contours ouverts
Opérations locales
Opération sur les contours:

 Codage de Freeman
 Représentation discrète d’un contour

X0,Y0 01067744
Opérations locales

Erosion
• Soit B un élément structurant
Bx élément centré en un pixel x
• Erodé = On positionne l’origine de B en chaque pixel x de l’objet A :
Si tous les pixels de B font partie de l’objet A, alors l’origine de B
appartient à l’érodé

Image A Erodé : A -B
Opérations locales

Erosion
Opérations locales

Erosion
Opérations locales

Erosion
 les objets de taille inférieure à celle de l'élément structurant
vont disparaître,
 s'il existe des trous dans les objets, c'est à dire des
"morceaux" de fond à l'intérieur des objets, ils seront
accentués
 les objets reliés entre eux vont être séparés.
 Remarquons également qu'une érosion de taille n peut se
réaliser en répétant une érosion n fois avec un élément
structurant de taille 1 ou en appliquant une seule érosion avec
un élément structurant de taille n.
Opérations locales

Dilatation
Soit B un élément structurant
Bx élément centré en un pixel x
Dilaté : Pour chaque position de B, est-ce que l’intersection entre B et
l’objet A est non vide ? Si oui, x l'origine de B appartient à l'image
Dilatée

Image A Dilaté : A + B
Opérations locales

Dilatation
Opérations locales

Erosion
Opérations locales

Dilatation

lors d'une dilatation :


 tous les objets vont "grossir" d'une partie
correspondant à la taille de l'élément structurant,
 s'il existe des trous dans les objets, c’est-à-dire
des "morceaux" de fond à l'intérieur des objets, ils
seront comblés
 si des objets sont situés à une distance moins
grande que la taille de l'élément structurant, il
vont fusionner.
Opérations locales

Dilatation

Erosion
Opérations locales

Ouverture
Opérations locales

Ouverture

Comme le montre l'image précédente,


l'ouverture a pour propriété d'éliminer
toutes les parties des objets qui ne
peuvent pas contenir l'élément
structurant
Opérations locales

Fermeture
Opérations locales

Fermeture

Comme le montre l'image précédente,


la fermeture a pour propriété de
combler tout ce qui est de taille
inférieur à l'élément structurant
Opérations locales

Ouverture et fermeture : propriétés


Opérations locales

Filtrage Morphologique

Ouverture : Élimination les débris

Fermeture : bouche les trous


Opérations locales

Détection de Contours
Opérations locales

Détection de Contours
Gradient interne : contour intérieur
Image originale - Image érodée = Contour intérieur
A - (A - B)
Gradient externe : contour extérieur
Image dilatée - Image originale = Contour extérieur
(A + B) – A
Gradient morphologique
Image dilatée - Image érodée = Gradient morphologique
(A + B) - (A - B)
Opérations globales

Filtrage fréquentiel

 Une image peut être représentée par un


signal 2D
 Sa transformée de Fourier donne donc
l’intensité en fonction de la fréquence
 On peut appliquer des filtres passe-bas et
passe-haut sur l’image pour faire ressortir
certaines gammes de fréquences
Opérations globales

Filtrage fréquentiel
 Dans une image, les basses fréquences représentent les
zones lisses, qui varient peu
 Les hautes fréquences sont les zones très variables:
textures, arrêtes, coins
 Un filtre passe-bas fait passer les basses fréquences
 Élimine les hautes fréquences, diminue le bruit
 Permet de lisser , d’adoucir les arêtes
 Un filtre passe-haut fait passer les hautes fréquences
 Met en évidence les arêtes, les contours, les
ombres
 Augmente le bruit dans l’image
Opérations globales
Transformée de Fourier

 Représentation fréquentielle d’une fonction


donnée 
F()   f ( t ) e
i 2  t
dt


1

i 2  t
f (t)  F(  ) e dt
2  

 Images = fonctions réelles Є L 2

 f (t ) dt  
2


Opérations globales
TF, Quelques définitions…
 TF est imaginaire F ( )  R( )  i I ( )  F ( ) ei ( )

 Spectre de Fourier F ( )  R( )  i I ( )  R 2 ( )  I 2 ( )

 Phase  ( )  tan 1 I ( ) R( ) 

 Spectre de Puissance (densité spectrale)


P( )  F ( ) ei ( )  F ( ) ei ( )  F ( )
2
Opérations globales
TF, Quelques définitions…
F ( )  R( )  i I ( )  F ( ) ei ( )

 Spectre de Fourier F ( )  R( )  i I ( )  R 2 ( )  I 2 ( )

 Le module contient des informations sur :


- la répartition fréquentielle de l’image
- les valeurs (en niveaux de gris) de l’image

 Phase  ( )  tan 1 I ( ) R( ) 

 La phase contient l’information de position des


structures de l’image (contours)
Opérations globales
Résultats rectangle 1D
Opérations globales
Résultat rectangle 2D
Opérations globales
Résultat rotation d’un carré
Opérations globales
Résultat sur différents formes d’images
Opérations globales
Résultat sur différents formes d’images
Opérations globales
Transformée de Fourier discrete

 Cas continu (image optique) peut s’exprimer pour le cas discret


(image numérique). En 1D, on a

 f ( x0 ), f ( x0  Dx), f ( x0  2Dx), f ( x0  3Dx),, f ( x0  ( M  1)Dx)


f ( x)  

 f (0), f (1), f (2), f (3),, f ( M  1)

 M pas d’échantillonnage uniformes Δx


 Pour les images, on a des pas Δx et Δy pour une fonction
donnée par

f ( x, y )   f (0,0), f (1,0), f (0,1), f (2,0), , f ( M  1, N  1)


Opérations globales
TF discrète
M 1
1
F ( ) 
M

x 0
f ( x) e i 2x / M   0 ,1, 2 , , M  1

M 1
f ( x)   F (  ) ei 2x / M x  0 ,1, 2 , , M  1
 0

 On passe de l’espace discret aux


fréquences discrètes avec les pas
d’échantillonnage reliés par:
1
D 
M Dx
Opérations globales
TF discrète 2D

soit M  N
1 N 1 N 1
F(, )   f ( x, y) e i 2  ( x  y ) / N  ,   0 ,1, 2 , , N  1
N x 0 y 0

1 N 1 N 1
f ( x, y)   F(, ) ei 2 ( x  y ) / N x , y  0 ,1, 2 , , N  1
N  0  0
 Note: la normalisation a été répartie sur la paire de
transformée…
Opérations globales

Filtrage fréquentiel

 Pour appliquer un filtre:


 On veut multiplier le signal de l’image par

une fonction dans le domaine fréquentiel


 Reviens à convoluer dans le domaine

spatial avec la transformée de Fourier


inverse du filtre
 L’image est discrète: convolution discrète

 On utilise donc un Kernel de convolution


Opérations globales
Filtrage fréquentiel
Opérations globales
Filtrage fréquentiel : passe bas

r=8 r=16 r=32 r=64 r=128


Opérations globales
Filtrage fréquentiel : passe haut

r=8 r=16 r=32 r=64 r=128


Opérations globales
Filtrage fréquentiel : passe bande

Vous aimerez peut-être aussi