2
Histogrammes et traitements lmen-
taires
Nicholas Journet / Anne Vialard - Traitement dimages - LPRO - 2014/2015
2.1 Transformations dhistogrammes : image en niveaux de gris
Dans cette partie les images traites sont des images en niveau de gris, chaque niveau de gris tant cod sur 8 bits.
Question 1
Ecrivez un plugin ImageJ qui calcule et afche une mesure de contraste de limage traite. Vous utiliserez la
mesure vue en cours :
1
N
x,y
(I(x, y) Moy)
2
o N est le nombre de pixels de limage, I(x, y) la valeur du pixel de coordonnes (x, y) et Moy la moyenne
des niveaux de gris de limage.
Appliquez ce plugin aux images mystere, boat et baboon. Notez les mesures de contraste obtenues.
Question 2
Ecrivez un plugin ImageJ permettant dtirer linairement la dynamique de limage entre 0 et 255. Comme cela
a t vu en cours, vous utiliserez une LUT.
Testez sur limage mystere. Quels sont les niveaux de gris de limage avant transformation ? Quels sont-ils aprs
transformation ? Expliquez. Testez galement sur les images boat et baboon. Notez la mesure de contraste
aprs transformation.
Consultez la documentation de lAPI ImageJ pour la mthode applyTable de la classe ImageProcessor. Modi-
ez votre code en utilisant cette mthode.
Question 3
Ecrivez un plugin ImageJ pour galiser lhistogramme de limage traite. Testez sur les mmes images en ob-
servant lhistogramme et la mesure de contraste avant et aprs transformation.
2.2 Transformations dhistogrammes : image couleur
Question 4
Ecrivez un plugin ImageJ pour galiser lhistogramme de limage traite qui est maintenent une image couleur
RGB.
Pour galiser une image couleur il faut appliquer une galisation identique pour chacune des composantes R,
G et B. Pour cela, il faut calculer lintensit de limage en niveaux de gris I = 0.3 R + 0.59 G + 0.11 B et
calculer lgalisation de lhistogramme de I. Il suft alors dappliquer cette galisation aux trois composantes R,
G et B.
Testez sur les images paysage, lena et yellowstone.
1
Question 5
Ecrivez le code java permettant lgalisation dun histogramme dune image couleur mais cette fois-ci chaque
canal sera galis selon sa propre distribution de valeurs.
En ralisant des tests sur les images fournies, expliquez pourquoi il ne faut pas appliquer une galisation diff-
rente chacune des composantes R, G et B.
2.3 Jeux des 7 diffrences
Question 6
On souhaite raliser un programme aidant trouver les 7 diffrences entre deux images.
En vous inspirant des exemples vus en cours et de limage ci-dessous, compltez le code suivant an que les
diffrences entre les deux images ressortent.
1 import ij.*;
2 import ij.process .*;
3 import ij.gui.*;
4 import java.awt.*;
5 import ij.plugin.frame .*;
6
7 public class Les_Sept_Erreurs extends PlugInFrame {
8 public Les_Sept_Erreurs (){
9 super( "Jeu des 7 differences");
10 }
11
12 public void run(String arg) {
13 ImagePlus imgDiffA = new ImagePlus("chemin 1");
14 ImageProcessor ipDiffA=imgDiffA.getProcessor ();
15 byte[] pixelsDiffA = (byte []) ipDiffA.getPixels ();
16
17 ImagePlus imgDiffB = new ImagePlus("chemin 2");
18 ImageProcessor ipDiffB=imgDiffB.getProcessor ();
19 byte[] pixelsDiffB = (byte []) ipDiffB.getPixels ();
20
21 int w = ipDiffB.getWidth ();
22 int h = ipDiffB.getHeight ();
23
24 ImageProcessor ipRes=new ByteProcessor(w,h);
25 ImagePlus imgRes = new ImagePlus("difference",ipRes);
2 / 3
26 byte[] pixelsRes = (byte []) ipRes.getPixels ();
27 ...
28 imgRes.show();
29 imgRes.updateAndDraw ();
30
31
32 }
33 }
2.4 Mlange dimages
Question 7
Ecrire un plugin ImageJ qui permet de mlanger deux images de mme taille choisies par lutilisateur. Le mlange
dpend dun coefcient compris entre 0 et 1 : I
(x, y) = I
1
(x, y)+(1)I
2
(x, y). Vous crerez plusieurs images
rsultat en faisant varier le coefcient de mlange. Dans un premier temps, votre plugin pourra traiter des images
en niveaux de gris. Testez avec les images face1.pgm et face2.pgm. Modiez votre code de faon pouvoir
mlanger des images RGB.
Ce document est publi sous Licence Creative Commons By-
NonCommercial-ShareAlike . Cette licence vous autorise une utilisation
libre de ce document pour un usage non commercial et condition den
conserver la paternit. Toute version modie de ce document doit tre pla-
ce sous la mme licence pour pouvoir tre diffuse.
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
3 / 3