j'ai essayé de binariser une image niveau de gris.
j'utilise la fonction getPixels pour transformer une image vers une matrice.
quel est la forme des nombres enregistrées dans la matrice correspond en image c'est a dire binaire,decimale ou quoi?
j'ai essayé de binariser une image niveau de gris.
j'utilise la fonction getPixels pour transformer une image vers une matrice.
quel est la forme des nombres enregistrées dans la matrice correspond en image c'est a dire binaire,decimale ou quoi?
De quel pacquage et objet viens ta fonction getPixels() ?
le code de la fonction est le suivant:
public void getPixels(Image img, int pixels[], int w, int h)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 { PixelGrabber pg = new PixelGrabber(img, 0, 0, w, h, pixels, 0, w); try { pg.grabPixels(); } catch (InterruptedException e) { System.err.println("interrupted waiting for pixels!"); return; } if ((pg.status() & ImageObserver.ABORT) != 0) { System.err.println("image fetch aborted or errored"); return; } }
Lorsque tu postes du code met le entre les balises [code ] et [/code ] pour que l'indentation ne soit pas perdue.
Le tableau est une liste de pixel, Chaque ligne est stoqué à la suite de la précédente.
Cela signifie que pour avoir le pixel au coordonnées (a,b) d'une image qui mesure w de large et h de haut: il faut faire intEnsuite chaque pixel est codé en ARGB sur un int (4 octets). Les octets contiennent respectivement : l'alpha(de 0 pour transparent à 255 pour opaque), le rouge, le vert et le bleu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part int pixel = pixels[a+b*w];
Tu peux les extraire séparément comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int alpha = (pixel >> 24) & 0xff; int red = (pixel >> 16) & 0xff; int green = (pixel >> 8) & 0xff; int blue = (pixel ) & 0xff;
j'ai essayé avec ce code mais rien ne s'affiche
je cherche un code qui binarise une image niveau de gris en java.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 int i; int red = 0; int blue =0; int green=0; //Boucle de binarisation de l'image AWT for (i=0;i<(l*h);i++){ blue=((matrice[i] >> 0) & 0xff); green=((matrice[i] >> 8) & 0xff); red=((matrice[i] >> 16) & 0xff); if(red>120) red=1; else red=0; if(green>120) green=1; else green=0; if(blue>120) blue=1; else blue=0; //On renvoie que le rouge car on aune image noir et blanc donc cela ne change rien matrice[i] = red;//(255 << 24) | (red<< 16) | (green<< 8) | blue;
Partager