Traitement d'image

Introduction du sujet

  • Grâce au logiciel NetBeans nous allons faire des traitements sur une image. Nous devrons traiter ces deux images :


Logo Milka

Photo Zebre


  •  Pour arriver au résultat suivant 


Zebre + Milka

  • Dans le logiciel NetBeans


Interface NetBeans





Ouverture des deux fichiers images et accès aux pixels

  • A partir de la documentation fournit dans le code, ouvrez l'image du zèbre, et ré-enregistrez là sous un autre nom


Code dans NetBeans


  • Ouvrez l'image du logo Milka et faites en sorte que la moitié haute de l'image soit toute blanche. Ré-enregistrez ce résultat dans une image intitulée «Milka_moitmoit.png»


Code dans NetBeans


Milka_moitmoit.png







Recopie et déplacement de la petite image dans la grande

  • Commencez par recopier le logo en haut à gauche de l'image du zèbre


Code dans NetBeans

Milka_zebre_1.png


  • Arrangez vous pour que le logo soit recopié en plein milieu du zèbre 



Code dans NetBeans




Milka_zebre_2.png



Suppression du fond du logo

  • Quelle est la couleur des pixels du texte ?
  1. La couleur des pixels des textes en normalement de 255 ( Blanc ) mais comme l'image est de mauvaise qualité on peux mettre un seuil a 200.



  • Proposez une méthode pour ne recopier que ces pixels là



Code dans NetBeans

Milka_zebre_3.png





Modification de la couleur du texte du logo

  • Proposez une méthode qui vérifie la couleur de la bande du zèbre, et recopie le texte du logo de manière à avoir du texte noir sur les bandes blanches et vice-versa


Code dans NetBeans

Milka_zebre_4.png



  • Calculez l'histogramme des niveaux de gris


Code dans NetBeans
 Déclaration dans main : 
histogramme(zebre);




Histogramme dans OpenOfficeCalc



Pour aller plus loin

  • Codez une fonction qui permet d'inverser une image. C'est à dire que les pixels noirs deviennent blancs et que les pixels blancs deviennent noirs. Cette fonction ne prendra aucun paramètre


Code dans NetBeans


Déclaration :
int[][] zebreInversee = InverserCouleur(zebre); 
zebre.ecrirePNG("../zebre_negatif.png",zebreInversee);



  • Codez une fonction de binarisation des images. Le seul paramètre que la fonction acceptera sera le seuil de binarisation 


Code dans NetBeans


Déclaration :
int[][] zebrebinaire = BinaireIm(zebre, 100);
zebre.ecrirePNG("../zebre_binaire.png",zebrebinaire);