Qu’apprend-on dans ce chapitre Qu’est-ce qu’un pixel et quel type d’information il véhicule ; Qu’est-ce qu’un histogramme image et à quoi cela sert-il de le manipuler ; Qu’est ce que le filtrage passe-bas et quels sont les filtres les plus usuels ;
Information représentée par 1 pixel Selon longueur d’onde l Selon l, les propriétés de réflexion et d’absorption diffèrent distinction de différents objets (e.g. télédétection) Géométrie d’acquisition - échantillonnage - résolution spatiale Discrétisation de l’espace : pavage Capacité à discerner 2 objets proches spatialt Liée à la taille du pixel : Haute résolution pixels ‘petits’ Basse résolution pixels ‘grands’ Quantification des niveaux de gris provient de la discrétisation des niveaux de gris
Exemples ‘d’école’
Exemples en imagerie médicale Cellules à noyau Cellules à noyau Cellules cancéreuses IRM cerveau
Exemples en télédétection ERS/SAR (bande C, pix. 3030m) Tunisie, désert Delta du Rhône SPOT/HRV (Visible/IR, pix. 2020m) SPOT/VGT (Visible/IR, pix. 1km2) Val de Saône
Variabilité des images Images peuvent être binaires x{0,1} à niveaux de gris x[xmin, xmax] (généralement [0,255]) RVB x = (xrouge, xvert, xbleu) avec xrouge [xmin, xmax] etc. multispectrales x = (xl1, xl2, …, xln) avec xli [xmin, xmax] etc. multitemporelles x = (xt1, xt2, …, xtn) avec xti [xmin, xmax] etc. Image = Signal bidimentionnel à support et à valeurs bornées {x(i,j), i[1,N], j[1,M]} Processus stochastique {x(s), s[1,NM]} Vecteur aléatoire (x(1), … x(NM)) Surface (i,j,x(i,j))
Images bitmaps (vectorielles) Représentation matricielle correspondance (mapping) entre l'image d'origine et une grille de pixels (picture elements) Chaque pixel est défini par ses coordonnées et une valeur tonale appelée profondeur (BIPBIL ou BSQ); e.g. profondeur 1 octet pour images à 256 niveaux de gris, 24-bits pour images ‘true color’ # colonnes # lignes pixel (i,j) Avantages : facilement créées/stockées dans 1 tableau de pixels; lecture/écriture d’un pixel triviale. Inconvénients : taille des fichiers, problème d’interpolation si changement d'échelle Taille max. (hors compression) = nbre lignes nbre colonnes nbre bits/pixels
Pavage et maillage Pavage = partition de l’espace continu en cellules élémentaires Cas de pavages plan réguliers : cellules identiques et régulières Maillage = ensemble des segments reliant les ‘centroïdes’ des cellules ayant une arête commune Dualité pavage et maillage
Images niveaux de gris vs binaire Image niveaux de gris idéale Image niveaux de gris réelle Amélioration d’image / Filtrage Classification / binarisation Image binaire idéale Image binaire bruitée
Images couleur vs binaire / niveaux de gris Images binaires idéales (3 canaux) Image couleur idéale Canal Rouge Vert Bleu Image couleur idéale
Représentation des images bitmaps Formats de fichiers d’images bitmap (vectorielles) : Très nombreux codages selon quantification (binaire, niveaux de gris, palette, 24 bits, etc.) et algorithme de codage/compression , e.g. - Formats à 256 ‘couleurs’ GIF, PCX, PGM, … - Formats avec différentes quantifications BMP, TIFF, TGA, PNG, … Formats à 16 millions de couleurs JPEG, JPEG 2000, … Ex.: format YUV versus RGB Y' = 0.299R + 0.587G + 0.114B ; U = B - Y‘ ; V = R - Y‘ Puis codage image en sous échantillonnant U et V par facteur 2: Y’(i,j)U(i,j)V(i,j)Y’(i,j+1)Y’(i,j+2)U(i,j+2)V(i,j+2) etc. gain de 30% par rapport au RGB ‘true color’
Représentation des images en mémoire stride = pitch = nbre de bytes d’une ligne à la suivante en mémoire. Positive stride (e.g. YUV images using msdn) Negative stride (e.g. RGB images using msdn) https://msdn.microsoft.com/en-us/library/windows/desktop/aa473780%28v=vs.85%29.aspx
Exercice : fusion XS+P Image intensité haute résolution : Ihr 0,33 0,67 0,17 Image intensité haute résolution : Ihr Hypothèse : Intensité = moyenne des 3 canaux RGB 0,25 1 0,5 0,75 0,13 0,38 Image couleur basse résolution codée en Bayer Avec Rbr (etc.) la réflectance dans le rouge à basse résolution
Canal rouge Canal vert Canal bleu RMSE=0.07572 RMSE=0.12057 0,97 0,94 0,99 0,98 0,89 0,46 0,89 0,97 0,99 0,94 0,98 0,4 0,45 0,94 0,97 0,99 0,98 0,89 0,45 0,4 Canal bleu RMSE=0.08299
Amélioration d’images Problème : Comment rehausser le contraste d’une image de façon à faire apparaître les objets ? Comment s’affranchir des paramètres de luminosité lors de l’acquisition ? ‘Étalonnage’ des valeurs des pixels en vue de leur comparaison Applications : mise en correspondance, détection de changement, classification, etc. Principalement le cas des images à niveaux de gris (décomposition des images multiXXX en N images à niveaux de gris)
1ères méthodes : modifications de l’histogramme Cas des transformations qui n’altèrent pas la relation d’ordre Translation d’histogramme Etalement de la dynamique Seuillage Niveau de gris # pixels Niveau de gris # pixels Transformation linéaire : x’(s) = a.x(s)+b et x’(s)[0,256] a.xmin+b=0 et a.xmax+b=255 a=(255-0)/(xmax-xmin) et b=0-(255-0)xmin/(xmax-xmin) Niveau de gris # pixels Perte d’information irréversible
Egalisation d’histogrammes Principe : Maximiser l’entropie Niveau de gris # pixels Algorithme Calcul de l’histogramme initial H (attention : bins suffisamment fins) Pour chaque bin, on stocke sa borne sup. et le # de pixels Calcul de l’histogramme égalisé He (nbp pixels/bin, nbpcst) n=0; k=0; Pour chaque bin j de H { n+=nbre pixels de H[j]; si nnbp, alors { borne sup de He[k] = borne sup de H[j]; nbre pixels de He [k++] = nbre pixels de H[j]; n=0; } } Création de la table de correspondance entre les niveaux de gris de l’image initiale et de l’image égalisée Création de l’image égalisée si n>0 { borne sup de He[k] = xmax ; nb pixels de He[k++] = n; } j / x[borne sup He[j] ; borne sup He[j+1] ], T[x]=j 255/k s domaine image, x’s=T[xs]
Egalisation des cas ‘d’école’ Avant égalisation Après égalisation Avant égalisation Après égalisation Après étirement
Spécification d’histogrammes Principe Objectif : à partir de l’image X et HX, son histogramme, on calcule Y=g(X) ayant HY donné Soit FX la fct d’égalisation de X, et FY celle de Y. Les deux égalisations doivent conduire au même histogramme (uniforme) Y= Fy-1(FX(X)) Y n’est pas connue mais HY l’est, ce qui suffit à spécifier FY et FY1 Niveau de gris # pixels Niveau de gris # pixels FX Niveau de gris # pixels Niveau de gris # pixels Niveau de gris # pixels FY FY-1 Application : inter-étalonnage d’images Attention : perte de dynamique
Filtrage passe-bas d’images Problème : Comment réduire le bruit d’une image de façon à améliorer la ‘netteté’ des objets ? Comment réduire la variabilité intrinsèque des objets de façon à les simplifier ? Hyp. fondamentale : le bruit est 1 signal haute fréquence et l’information ‘utile’ est 1 signal basse fréquence. Applications : analyse statistique, classification, etc. Principalement le cas des images à niveaux de gris (décomp. des im. multiXXX en N im. à niv. de gris)
Modèles de bruits Valeurs ‘aberrantes’ en p% pixels de l’image, ex : - Bruit ‘poivre et sel’ Valeurs ‘altérées’ en tout pixel de l’image, ex : - Bruit ‘gaussien’ - Bruit à distribution uniforme - Bruit à distribution de Rayleigh Bruit indépendant en chaque pixel hautes fréquences sur l’image xs valeur non bruitée en s, ys valeur bruitée en s f(ys=0)=f(ys=255)=p/2, f(ys=xs)=1-p Bruit généralement additif : zs=ys-xs Ex. de ddp bruit : f(zs)=C.exp{-K|zs|n} n = 0 bruit uniforme n = 1 bruit exponentiel C= K/2 n = 2 bruit gaussien K=1/[2s2 ], C=1/[sqrt(2p)s] bruit Rayleigh f(zs)=zs/s2.exp{-zs2/[2s2 ]}
Histogrammes de bruit gaussien Image 3 canaux sans bruit Image 3 canaux bruit gaussien s=30
Exemples de bruits Poivre et sel 10% Gaussien s=20 Gaus. s=10, poivre&sel 10%
Quelques filtres lisseurs de base (I) Cas d’images bruitées prétraitement : ‘lissage’ Filtrage linéaire Moyennage Somme des coefficients = 1 Exemple avec filtre ‘triangle’ Filtres à coef. séparables : Rép. impulsionnelle h(i,j) = hl(i).hc(j) filtrage linéaire selon les colonnes par hc, puis filtrage linéaire selon les lignes par hl ( refaire l’exemple triangle avec ½.[½ 1 ½]) Linéaire gaussien, paramètre s e.g. s=1.0, s=1.6 filtrage seuillage
Filtrage linéaire : exemples Filtre moyen 33 Filtre gaussien s=1 Images différence
Quelques filtres lisseurs de base (II) Filtrage non linéaire De Nagao SNN (Symetric Nearest Neighbor) Filtrage d’ordre k Médian (p pixels, p≤|Vs|, k=p/2) Prise en compte de processus bord Ex. P1 P2 P3 P4 P0 Q4 Q3 Q2 Q1 Hyp: voisinage Vs traversé par 1 contour au + Vs décomposé en paires (Pi,Qi) pour chaque paire ne considérer que le pixel le + proche en caractéristique(s) de P0 Algorithme : 1) Calcul de l’histogramme sur le voisinage Vs 2) Tri des valeurs du voisinage 3) Sélection de la valeur de E à l’ordre considéré Propriétés du filtre médian : Pas de nouvelles valeurs s’applique aux images binaires, préserve les contours rectilignes (mais érode les convexités et coins) Invariance par étirement de contraste commute avec toute transformation croissante des niv. de gris ( du filtrage linéaire qui ne commute qu’avec les transf. linéaires) Elimination du bruit poivre et sel np pixels poivre, ns pixels sel, la médiane est dans les n-np-ns pixels restants corrects sauf si np ou ns>n/2 Autres filtres de rang : érosion fonctionnelle (k=1), dilatation fonctionnelle (k=p)
Filtrage non linéaire : exemples Filtre médian 33 Filtre de Nagao Images différence
Bruit gaussien s=30 + bruit impuls 10% Filtrage moyenne 77 99 Filtrage de Nagao Filtrage médian 77 99 Bruit gaussien s=30 + bruit impuls 10% Bruit impulsion 20% Bruit gaussien s=60
‘S&P’ 10% filtre médian 7x7 Bruit ‘P&S’ 10% Image non bruitée Gaus. s=20 filtre gaus. s=2.5 Bruit gaussien s=20 ‘S&P’ 10% filtre médian 7x7 Bruit ‘P&S’ 10% s=20 + ‘S&P’ 10% filtre Nagao Bruit gaussien s=20, ‘P&S’ 10%
Filtrage : exercices 111 92,1 54,2 75,6 42,8 98 92,6 66,2 87,1 79,1 78,2 83,4 79,5 89,7 85,4 55,1 61,5 89,6 77,7 47,3 116 55,8 131 86,5 67,9 108 71,1 68,1 67,1 99,8 70,3 86,7 104 107 106 90,1 69,9 86,3 80,1 113 56,1 112 75,7 78,9 81,8 58,5 101 93,3 90,5 62,8 143 128 83,2 70,8 76,7 86,1 41,1 90,3 100 90,7 82,3 135 99,6 110 93,6 124 68,4 70,1 78,8 91,6 90,6 92 75,9 85,2 130 83,9 88,3 75,3 89,4 60,7 70,7 183 179 171 157 78,7 120 103 89,8 77,8 61,6 83,8 91,9 96,7 78,3 62,2 90,4 121 102 30,6 118 77,2 90,2 144 182 145 115 83,1 69,2 92,9 170 140 160 192 197 132 208 87,7 59,8 159 152 142 175 59,1 88 133 58,1 94,3 93,1 167 164 139 165 153 123 154 81,9 155 68,5 81,4 117 79,4 85,7 162 169 174 158 161 201 65,1 77,3 99,2 87,4 109 84,3 95,2 91,4 92,4 185 188 177 86,4 95,1 68,7 99,1 105 96,4 95,6 72,1 84,9 82,2 76,9 176 125 87 91,7 191 211 156 64,9 84,5 72 150 163 181 66,7 90,8 52,5 96,2 180 172 98,9 127 54,8 88,5 85,8 134 55,5 89,9 168 85,9 81,5 52,1 96,9 119 73,9 137 89,5 80,5 65,6 64,3 136 186 149 67,2 60,8 79,8 42,5 87,2 76,1 89,3 196 61,7 91,5 68,3 92,2 74,5 97,2 75,4 151 141 178 205 88,7 96,5 122 74,9 75,2 57,2 68,9 51,8 173 69,8 86,9 83 78,4 51,5 69,6 210 83,3 75,8 87,3 98,7 61 97 88,4 68,6 82,1 54,1 85,3 65 82,9 55 87,5 79,6 129 138 190 66,6 92,3 94,6 96,1 75 95 91,3 89,2 71,7 95,7 80,7 84,2 166 187 81,7 70,9 93,2 86,2 71,5 91,2 61,8 57,9 59,4 70,6 80,6 71,9 66,4 64,1 89,1 69,1 83,7 78,5 76,8 46,7 97,1 56,4 84,7 89 73 56,7 80,2
Filtre médian 8-connexité Filtrage : exercices Filtre linéaire : noyau = Filtre médian 8-connexité 54,4 65,8 48,2 51,3 62,5 64,1 60,7 65 66,9 65,4 62,8 61,3 63,2 61,9 54,8 54,6 62 60 59,8 63,9 63,6 69,3 54,3 99,8 81,6 73,3 67,6 71,8 81,5 89,7 86,9 95,3 86,8 81,4 84,8 82,7 85,8 70,8 75,6 76,7 83,7 78,3 80,4 84,1 93,9 67,3 87,2 79,4 79,6 89,9 84,5 81,8 89,5 94,1 92 82,5 76 82 88,5 84,2 83,3 92,6 93 91,3 85,7 83,5 64,7 92,7 90,5 68,1 98 86,7 83,2 86,3 86,1 79,5 83,4 85,4 82,3 89,6 99,6 93,6 99 104 95,8 87,5 86,2 90,2 94,6 91,1 78,2 78 94,2 107 114 121 103 101 96 82,6 57,7 85,2 83,9 88,3 80,1 90,3 90,7 113 112 89,8 73,9 61,4 90,1 96,9 94,9 86,5 96,1 96,5 100 76,3 76,5 77,9 95,7 130 150 154 135 109 102 87,3 57,5 90,6 91,9 77,2 89,4 144 145 110 83,1 60,4 99,9 105 98,2 92,1 125 82,2 97,9 134 156 162 143 108 99,4 93,1 61,7 87,7 91,6 90,4 124 159 157 115 64 96,3 136 128 131 152 80,5 137 153 142 93,7 98,7 88,4 92,9 96,7 139 132 118 81,9 155 88 83,8 63 160 161 147 80,7 140 94,7 75,1 158 99,2 87,4 93,3 65,9 88,6 166 167 168 106 117 116 94,3 92,2 92,4 164 169 165 170 95,1 95,6 84,3 84,9 88,1 67,4 126 171 172 151 141 97,7 120 83,6 62,2 87,1 174 91,7 86,4 96,4 95,2 84,7 68,3 97,4 111 127 79,9 56,8 163 176 90,8 87 96,2 99,1 98,9 72,1 73,5 90,9 138 87,6 119 94,5 80,8 57,6 96,6 76,8 66,8 98,3 146 80,6 149 85,9 79,8 59,2 99,7 89,2 74,7 78,8 89,3 91,5 67,7 89 73,1 175 88,7 80 93,2 76,1 177 80,3 180 78,9 99,3 75,2 75,8 77,8 82,4 76,4 178 83 98,1 173 63,8 97 179 82,1 74,3 98,8 92,5 148 79,1 77 91 63,3 74,4 96,8 97,1 64,3 183 95 71,6 95,9 97,3 86,6 95,4 72,4 92,3 67 94 92,8 61,5 85,1 133 93,4 55,2 91,2 123 73,6 58,3 76,9 77,4 94,4 56,7 78,5 71,9 75,3 89,1 80,2 44,6 58,5 53 48 49,7 54,5 64,4 74,2 78,4 75 57,1 70,6 64,2 61,2 70 75,9 71,1 77,6 70,4 66,4 84,6 70,5 90 79,2
Des pixels à l’image § ‘Amélioration d’images’ : image vue comme 1 collection de pixels (val. scalaires, vectorielles…) vus comme des échantillons indépendants d’1 même distribution. § ‘Filtrage PB d’images’ : im. vue comme la superposit° d’1 signal 2D constant par morceaux (sur le support 2D) et d’1 collect° de d’échantillons de bruit indépendants. Ce qu’on recherche : pas des pixels, mais des objets comment passer d’1 vision myope (pixel, voisinage pixel) à 1 caractérisation niveau objet ? On laisse de coté (temp.) l’aspect radiométrique pour se concentrer sur les aspects géom. et topolog. cas d’images binaires Caractérisation géométrique et topologique (et non seulement radiométrique)