Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1363 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Javascool] Projet traitement d'image pour le Bac

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Javascool] Projet traitement d'image pour le Bac

n°2226891
dax003
Posté le 01-05-2014 à 01:47:51  profilanswer
 

Bonsoir,
 
Etant en Terminale, spécialité ISN (Informatique et Sciences du Numérique), on nous demande de réaliser un projet à présenter à la fin de l'année. Notre prof nous as fait (vaguement) étudié le langage Javascool, et nous as imposé notre projet. Le mien étant le traitement d'image, c'est à dire un truc qui m'est totalement inconnu.
 
Il faut que je prenne une image, et que je propose plusieurs changement : inversion des couleurs(la photo étant en noir et blanc), effet photomaton etc... Avec toujours l'image originale qui reste afficher.
 
Et je sais absolument pas comment faire ça, je suis perdu à tous les niveaux : autant pour charger l'image depuis mon PC et pour l'inversion des couleurs ça va, mais pour l'effet photomaton et l'affichage de l'image originale ET de l'image modifié en même temps je ne sais pas...
Voilà donc où se situe mon problème, comment garder l'image de base afficher ? Et pour l'effet photomaton si quelqu'un a une idée ?
 
Merci d'avance, je sais que c'est pas le projet le plus palpitant mais voilà, c'est pour le baccalauréat et ça nous est imposé...
 
Bonnes soirée.

mood
Publicité
Posté le 01-05-2014 à 01:47:51  profilanswer
 

n°2226897
honrisse
Posté le 01-05-2014 à 11:59:10  profilanswer
 

dax003 a écrit :

Bonsoir,
 
Etant en Terminale, spécialité ISN (Informatique et Sciences du Numérique), on nous demande de réaliser un projet à présenter à la fin de l'année. Notre prof nous as fait (vaguement) étudié le langage Javascool, et nous as imposé notre projet. Le mien étant le traitement d'image, c'est à dire un truc qui m'est totalement inconnu.
 
Il faut que je prenne une image, et que je propose plusieurs changement : inversion des couleurs(la photo étant en noir et blanc), effet photomaton etc... Avec toujours l'image originale qui reste afficher.
 
Et je sais absolument pas comment faire ça, je suis perdu à tous les niveaux : autant pour charger l'image depuis mon PC et pour l'inversion des couleurs ça va, mais pour l'effet photomaton et l'affichage de l'image originale ET de l'image modifié en même temps je ne sais pas...
Voilà donc où se situe mon problème, comment garder l'image de base afficher ? Et pour l'effet photomaton si quelqu'un a une idée ?
 
Merci d'avance, je sais que c'est pas le projet le plus palpitant mais voilà, c'est pour le baccalauréat et ça nous est imposé...
 
Bonnes soirée.


 
Pour afficher l'image originale et celle modifiée, le mieux je pense est d'utiliser une image résultat qui contient les deux :

Code :
  1. // http://javascool.gforge.inria.fr/i [...] e.jvs.html
  2. // Voici quelques routines qui permettent de traiter les images sous forme de tableau
  3. // Il faut utiliser reset(width, height, false, false) ou load(name, false, false) pour une image non centrée et non zoomée.
  4. //
  5. // Retourne l'image courante sous forme de tableau monochrome
  6. int[][] getImageArray() {
  7.    int width = getWidth(), height = getHeight(), image[][] = new int[width][height];
  8.   for(int y = 0; y < height; y++)
  9. for(int x = 0; x < width; x++)
  10.   image[x][y] = getPixel(x, y);
  11.  
  12.    return  image;
  13. }
  14. // Retourne l'image courante sous forme de tableau couleur image[x][y][RR, GG, BB]
  15. int[][][] getImageColorArray() {
  16.    int width = getWidth(), height = getHeight(), image[][][] = new int[width][height][3];
  17.    for (int y = 0; y < height; y ++) for (int x = 0; x < width; x ++) image[x][y] = getPixelColor(x, y);
  18.    return  image;
  19. }
  20. // Copie le tableau monochrome dans l'image courante
  21. void setImageArray(int[][] image) {
  22.    int width = image.length, height = image[0].length;
  23.    reset(width, height, false);
  24.    for (int y = 0; y < height; y ++) for (int x = 0; x < width; x ++) setPixel(x, y, image[x][y]);
  25. }
  26. // Copie le tableau couleur image[x][y][RR, GG, BB] dans l'image courante
  27. void setImageColorArray(int[][][] image) {
  28.    int width = image.length, height = image[0].length;
  29.    reset(width, height, false);
  30.    for (int y = 0; y < height; y ++) for (int x = 0; x < width; x ++) setPixel(x, y, image[x][y][0], image[x][y][1], image[x][y][2]);
  31. }
  32. // Redimensionne une image
  33. int[][] resizeimage(int[][] image0, int width, int height) {
  34.    int width0 = image0.length, height0 = image0[0].length;
  35.    int[][] image = new int[width][height];
  36.    for (int y = 0; y < height; y ++) for (int x = 0; x < width; x ++) {
  37.       // Interpolation du pixel en prenant le plus proche voisin
  38.        int x0 = (x * width0) / width, y0 = (y * height0) / height;
  39.       image[x][y] = image0[x0][y0];
  40.    }
  41.    return  image;
  42. }
  43. int[][] filtreInverse(int[][] img) {
  44.    int w = img.length, h = img[0].length;
  45.    int[][] imgInverse = new int[w][h];
  46.    for (int i = 0; i < w; i ++) {
  47.       for (int j = 0; j < h; j ++) {
  48.          imgInverse[w-i-1][j] = img[i][j];
  49.       }
  50.    }
  51.    return imgInverse;
  52. }
  53. void main() {
  54.    load("http://farm3.static.flickr.com/2472/3988198655_d8b12c2328.jpg", false, false);
  55.  
  56.    int[][] imgOriginale = getImageArray();
  57.    sleep(1000);
  58.  
  59.    int[][] imgSymetrie = filtreInverse(imgOriginale);
  60.    int w = imgSymetrie.length, h = imgSymetrie[0].length;
  61.    int[][] imgOriginaleSymetrie = new int[w*2][h];
  62.  
  63.    for (int i = 0; i < w; i ++) {
  64.       for (int j = 0; j < h; j ++) {
  65.        //Copie imgOriginale dans imgOriginaleSymetrie
  66.          imgOriginaleSymetrie[i][j] = imgOriginale[i][j];
  67.          //Copie imgSymetrieginale dans imgOriginaleSymetrie
  68.          imgOriginaleSymetrie[i+w][j] = imgSymetrie[i][j];
  69.       }
  70.    }
  71. setImageArray(imgOriginaleSymetrie);
  72.    //save("test.jpg" );
  73. }


 
Les fonctions au début sont celles de cette page : http://javascool.gforge.inria.fr/i [...] e.jvs.html
On créé ensuite une image résultat de taille (largeur x 2, hauteur) pour contenir les deux images.
 
Le lien de documentation : http://javascool.gforge.inria.fr/v [...] n-etal.pdf

n°2226900
dax003
Posté le 01-05-2014 à 14:35:11  profilanswer
 

Salut, merci de ta réponse !  
 
J'ai déjà vu cette documentation, directement sur Javascool mais je ne comprend pas très bien. Comment je peux faire pour afficher originale et résultat en même temps ?  
 
Désolé j'ai vraiment du mal.
 
Bonne journée.

n°2226911
honrisse
Posté le 01-05-2014 à 16:15:54  profilanswer
 

dax003 a écrit :

Salut, merci de ta réponse !  
 
J'ai déjà vu cette documentation, directement sur Javascool mais je ne comprend pas très bien. Comment je peux faire pour afficher originale et résultat en même temps ?  
 
Désolé j'ai vraiment du mal.
 
Bonne journée.


 
Une première solution : en créant une nouvelle image qui contient l'originale et la nouvelle.
Peut être qu'il existe des fonctions d'affichage mais je ne connais pas javascool.
C'est ce que fait le code listé avec Javascool et le proglet codagePixels.
Par contre il faut que les deux images à assembler aient la même taille avec ce code et en niveau de gris, sinon il faut faire quelques petites modifications.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Javascool] Projet traitement d'image pour le Bac

 

Sujets relatifs
Aide projet ISN [python]Image ne s'affiche pas
Projet de site[Recherche programmeur] Projet E-Sports
Mon fichier traitement.php ne fonctionne pasqueqtion sur image.gif
Probleme de compilation sur Javascoolexemple du projet sur SINAMICS S120 CU310 PN
placer image sur panel depuis menu, plusieurs images, non !!! 
Plus de sujets relatifs à : [Javascool] Projet traitement d'image pour le Bac


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR