Matrices de cooccurrences

most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention - 3 déc. 2015 à 17:04 - Dernière réponse : most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention
- 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
Afficher la suite 

Votre réponse

8 réponses

KX 15681 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 19 août 2018 Dernière intervention - 3 déc. 2015 à 20:36
0
Merci
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
Commenter la réponse de KX
most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention - 4 déc. 2015 à 18:12
0
Merci
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
most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention - 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 ?
KX 15681 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 19 août 2018 Dernière intervention > most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention - 4 déc. 2015 à 22:49
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.
most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention > KX 15681 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 19 août 2018 Dernière intervention - 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
KX 15681 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 19 août 2018 Dernière intervention > most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention - 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
most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention > KX 15681 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 19 août 2018 Dernière intervention - 5 déc. 2015 à 20:48
Bonsoir,
Merci infiniment pour votre réponse j'ai compris maintenant ,je passe a l'implémentation
Commenter la réponse de most27

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.