Matrices de cooccurrences

most27 Messages postés 74 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 9 juillet 2016 - 3 déc. 2015 à 17:04
most27 Messages postés 74 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 9 juillet 2016 - 5 déc. 2015 à 20:48
Bonjour,
Voila je développe un mini tp sur la comparaison d'images et j'aimerais bien savoir:
Comment faire pour afficher une image a niveau de gris sachant que j'ai déjà
calculer le niveau de gris d'une image sous forme d'un tableau a 2 dimensions ?
Et comment implémenter les matrices de cooccurrences (distance=1 et l'ongle=0°,distance=1 et l'ongle=90°,distance=1 et l'ongle=45°
distance=1 et l'ongle=135°)sachant que j'ai dejà calculer la matrice a niveau de gris réduite
Voici mon code:

public int[][] niveauGris(int [][] r,int [][] v,int [][] b){
int height=r.length;
int width= r[0].length;
int [][] ngris=new int [height][width];

for (int x = 0; x < height; x++)
for (int y = 0; y < width; y++)
ngris[x][y]=(r[x][y]+v[x][y]+b[x][y])/3 ;

return ngris; }


public int[][] niveauGrisReduite(int [][] ngris){
int height=ngris.length;
int width= ngris[0].length;
int [][] ngrisReduite=new int [height][width];

for (int x = 0; x < height; x++)
for (int y = 0; y < width; y++)
ngrisReduite[x][y]=ngris[x][y]/24 ;//Predre la valeur entiére

return ngrisReduite; }

je vous remercie d'avance pour votre aide

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
3 déc. 2015 à 20:36
Bonjour,

Avant de passer à la pratique en Java il faudrait peut-être étudier un peu la théorie...

Tu fais NiveauGris = (Rouge+Vert+Bleu)/3 c'est très approximatif.

Regarde par exemple l'article de Wikipedia sur ce sujet :
https://fr.wikipedia.org/wiki/Niveau_de_gris

Luminance = 0,2126 Rouge + 0,7152 Vert + 0,0722 Bleu.

Quant aux matrices de cooccurrences, même chose, regarde déjà la théorie pour voir comment elles se calculent.

https://www.google.fr/search?q=matrices+de+cooccurrences+des+niveaux+de+gris
0
most27 Messages postés 74 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 9 juillet 2016
4 déc. 2015 à 18:12
Bonjour,
Je vous remercie pour votre aide
J'ai regarder se que vous m'avais donnée et j'ai compris que pour convertir une image en niveau de gris il faut remplacer chaque pixel par une seul valeur en utilisant cette formule :
Luminance = 0,2126 Rouge + 0,7152 Vert + 0,0722 Bleu.
Mais j'ai trouver dans le forum une discussion sur ce sujet voila :
http://www.commentcamarche.net/forum/affich-27231604-java-convertion-image-couleur-en-nuance-de-gris
J'ai pas compris,ils disent que pour convertir une image en couleur en niveau de gris il faut que la valeur des 3 couleurs rouge,vert,bleu soit identique (rouge=vert=bleu)
Est ce que c'est une autre méthode pour convertir une image en couleur en une image en niveau de gris ?
Merci encore pour votre aide
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
4 déc. 2015 à 19:32
Une couleur qui a R=V=B est une nuance de gris. Tu peux avoir du noir (0,0,0) du blanc (255,255,255), ou des gris intermédiaires comme (127,127,127) qui est le "vrai" gris.

Une image en nuances de gris n'aura donc que des couleurs de cette forme. Mais c'est plus un objectif qu'une méthode.
0
most27 Messages postés 74 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 9 juillet 2016
4 déc. 2015 à 22:33
Merci pour votre réponse donc si je comprend bien une image en niveau de gris et une image en nuance de gris c'est deux choses différentes ?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127 > most27 Messages postés 74 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 9 juillet 2016
Modifié par KX le 4/12/2015 à 22:51
Pour moi c'est la même chose, j'avais même pas vu que tu parlais de niveau, j'avais implicitement compris nuances vu que c'est pareil.

Si on voulait vraiment distinguer les deux, le niveau de gris serait la quantité de gris d'une couleur (le résultat numérique de ton calcul) et la nuance de gris sera la représentation colorimétrique de cette valeur (son affichage en pixel gris).

Par définition, le niveau de gris se rapporte à une couleur grise et donc à une des nuances du gris... les deux notions sont forcément associées.
0
most27 Messages postés 74 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 9 juillet 2016 > KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024
5 déc. 2015 à 18:23
Bonjour,
Merci pour votre réponse
Afin de récapituler:
Pour convertir une image a niveau de gris il faut remplacer CHAQUE PIXELS PAR LE résultat numérique de cette fonction Luminance = 0,2126 Rouge + 0,7152 Vert + 0,0722 Bleu.
Pour convertir une image en nuance de gris il faut que la valeur du ROUGE=la valeur du VERT= la valeur du BLEU pour chaque pixel
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127 > most27 Messages postés 74 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 9 juillet 2016
5 déc. 2015 à 20:13
"Pour convertir une image a niveau de gris il faut remplacer CHAQUE PIXELS PAR LE résultat numérique de cette fonction Luminance"

Tu ne peux pas remplacer un pixel par un résultat numérique, les types sont incompatibles, si tu construis une image c'est avec des nuances de gris.

"Pour convertir une image en nuance de gris il faut que la valeur du ROUGE=la valeur du VERT= la valeur du BLEU pour chaque pixel"

Il t'en manque en morceau et pas des moindres :
Rouge = Vert = Bleu = Luminance
0
Rejoignez-nous