Traitement image

Signaler
Messages postés
58
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
4 décembre 2018
-
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
-
salut
comment convertie une image de niveau de gris a image couleur .
voici le code de conversion de image couleur a image Niveau de gris
 public  int[]NiveauGris(int[]Entre,int w,int h){
int[]Sortie=Entre;
for(int i=0;i<Entre.length;i++){
int pix=Entre[i];
int red   = (pix >> 16) & 0xff;
int green = (pix >>  8) & 0xff;
int blue  = (pix      ) & 0xff;
int alpha = (pix >>  24) & 0xff;
int gris =(red+green+blue)/3;
int rgb = (alpha<<24)+(gris<<16)+(gris<<8)+gris;
Sortie[i]=gris;	    }

return (Sortie);}

aide mois

9 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
308
Salut,

Quel est ton problème ?
Messages postés
58
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
4 décembre 2018

salut
mon problème je veut convertie de image niveau de gris a image couleur
aide mois svp .
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
308
Et comment comptes tu t'y prendre ? Quel algorithme veux tu utiliser ?
Messages postés
58
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
4 décembre 2018

salut j'utilise l'algorithme de décalage
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
308
Est ce que c'est une blague ?

Si ce n'est pas le cas, peux tu me montrer ton code et me dire ce qui te pose problème précisément ?
Messages postés
58
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
4 décembre 2018

salut voici mon code source complet

//------------------- fonction qui charger image --------------
private Image image = null;
private Boolean stretch = true;

/**
* Constructeur
* @param image image à afficher
*/
public JImagePanel(Image image) {
this.image = image;
}

/**
* Constructeur
* @param file nom du fichier
*/
public JImagePanel(String file) {
image = getToolkit().getImage(file);
MediaTracker MT=new MediaTracker(this);
MT.addImage(image,0);

try{
MT.waitForID(0);
if(MT.isErrorAny())throw new IllegalArgumentException("Image no charger!");
}catch(Exception e){}
w = image.getWidth(this);
h = image.getHeight(this);
tabpix = new int [w * h];

PixelGrabber grab = new PixelGrabber(image, 0, 0, w, h, tabpix, 0, w);
try {
grab.grabPixels();

}
catch (InterruptedException e) {System.out.println("Pb dans grabPixels()");


}
// traitement de l'image à l'aide des // elements du tableau
for(int i=0;i<tabpix.length;i++)System.out.println(tabpix[i]);

}

/**
* Position de l'image sur le panel
* @param stretch true: etirer l'image / false: centrer l'image
*/
public void setStretch(Boolean stretch) {
this.stretch = stretch;
}

/**
* Surcharger le dessin du composant
* @param g canvas
*/
protected void paintComponent(Graphics g) {
int x = 0;
int y = 0;
int width = 0;
int height = 0;

if (this.stretch) {
width = this.getWidth();
height = this.getHeight();
} else {
width = this.image.getWidth(this);
height = this.image.getHeight(this);
x=((this.getWidth()-width)/2);
y=((this.getHeight()-height)/2);
}
g.drawImage(this.image, x, y, width, height, this);
}

/**
* Exemple : jPanelImage dans un JFrame
* @param args
*/
//-------------------------------------------------------------------------
public int[]NiveauGris(int[]Entre,int w,int h){
int[]Sortie=Entre;
for(int i=0;i<Entre.length;i++){
int pix=Entre[i];
int red = (pix >> 16) & 0xff;
int green = (pix >> 8) & 0xff;
int blue = (pix ) & 0xff;
int alpha = (pix >> 24) & 0xff;
int gris =(red+green+blue)/3;
int rgb = (alpha<<24)+(gris<<16)+(gris<<8)+gris;
Sortie[i]=gris; }

return (Sortie);}
//-----------------------------------------------------



ma question comment convertie l'image de niveau de gris a couleur ???
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
308
En regardant ton code source, je pense que la meilleure solution que tu ais est d'abandonner. Ce genre d'algorithme existe mais est très complexe à mettre en oeuvre. Ce sont généralement des algorithmes probabilistes basés sur des réseaux de neurones ou de la segmentation d'image (un peu comme ceux qui permettent de créer les images qui sortent des scanner et des irm)

Les algorithmes les plus performants actuellement utilises des indications données par l'utilisateur sur la couleur à appliquer sur quelques points et en fonction de la texture de fond, ils déduisent les autres points.

Dans tous les cas, ton objectif est je pense trop élevé au vu de ta maîtrise du langage.

J’espère que tu ne le prendra pas mal, mais j'essaye de t'éviter de perdre trop de temps.

Et "l’algorithme à décalage" est en réalité une famille d'algorithme de chiffrement symétrique... Ce nom est peut être également utilisé pour un algorithme de colorisation mais j'en doute.
Messages postés
58
Date d'inscription
lundi 1 novembre 2010
Statut
Membre
Dernière intervention
4 décembre 2018

salut tu peut te donner un exempl pour les algorithme plus performance
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
308
Je pense que tu n'as pas très bien compris. Ce genre d'algorithme n'existe pas !

Pour coloriser des films par exemple, ils utilisent soit des photos couleur pour déduire certains points, et un logiciel ultra pointu déduit les autres points. Il y a actuellement pas mal de recherche sur ce genre d'algorithme, et je pense qu'il est impossible
pour toi comme pour moi d'ailleurs de coder en java ce genre d'algorithme.