Traitement image

mkhadi Messages postés 58 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 4 décembre 2018 - 14 août 2012 à 04:47
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 23 août 2012 à 08:37
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
14 août 2012 à 08:57
Salut,

Quel est ton problème ?
0
mkhadi Messages postés 58 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 4 décembre 2018
14 août 2012 à 22:55
salut
mon problème je veut convertie de image niveau de gris a image couleur
aide mois svp .
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 août 2012 à 08:44
Et comment comptes tu t'y prendre ? Quel algorithme veux tu utiliser ?
0
mkhadi Messages postés 58 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 4 décembre 2018
19 août 2012 à 02:55
salut j'utilise l'algorithme de décalage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
20 août 2012 à 09:03
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 ?
0
mkhadi Messages postés 58 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 4 décembre 2018
21 août 2012 à 18:29
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 ???
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
22 août 2012 à 09:49
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.
0
mkhadi Messages postés 58 Date d'inscription lundi 1 novembre 2010 Statut Membre Dernière intervention 4 décembre 2018
23 août 2012 à 01:06
salut tu peut te donner un exempl pour les algorithme plus performance
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
23 août 2012 à 08:37
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.
0
Rejoignez-nous