Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
981 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Transformer une matrice à une image

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Transformer une matrice à une image

n°1417189
stiko83
Posté le 01-08-2006 à 09:12:10  profilanswer
 

Salut,
j ai un fichier texte qui contient seulemnt des valeurs numérique entre -10000 et 10000.je veux transformer ce fichier en une image de n'importe quelle autre format d'image.mais je connais pas comment il faut le faire.
j'aimerais bien savoir comment il le faut faire et merci pour votre réponse.
c'estun exemple de valeurs que j ai:
 
764.454    768.429     754.782    775.108
772.542    736.752     -227.144   -215.923
-280.154  -248.948    -227.144   -215.923  
-438.327  -385.182    -352.626   -349.389

mood
Publicité
Posté le 01-08-2006 à 09:12:10  profilanswer
 

n°1417359
Carbon_14
Posté le 01-08-2006 à 12:43:00  profilanswer
 

"je veux transformer ce fichier en une image de n'importe quelle autre format d'image"
Possible préciser la pensée ? Pas comprendre.
 
C'est pour faire un fichier genre BMP avec les points ? (256 niveaux par couleur, une ou trois couleurs donc précision limitée) ??

n°1417391
_darkalt3_
Proctopathe
Posté le 01-08-2006 à 13:26:46  profilanswer
 

stiko83 a écrit :

Salut,
j ai un fichier texte qui contient seulemnt des valeurs numérique entre -10000 et 10000.je veux transformer ce fichier en une image de n'importe quelle autre format d'image.mais je connais pas comment il faut le faire.
j'aimerais bien savoir comment il le faut faire et merci pour votre réponse.
c'estun exemple de valeurs que j ai:
 
764.454    768.429     754.782    775.108
772.542    736.752     -227.144   -215.923
-280.154  -248.948    -227.144   -215.923  
-438.327  -385.182    -352.626   -349.389


 
Ca ne veut juste rien dire c'est ça ?  [:jofission]  
 
Avec quel langage ?
Sous quelle plateforme ?
Ton fichier possède toujours quatre colonnes ?
Comment interpreter les valeurs négatives ? Et positives ? C'est un fichier image ? De quel format natif ?

n°1417425
stiko83
Posté le 01-08-2006 à 14:06:59  profilanswer
 

au début il ya avait une image duquelle j ai obtenu une fichier texte contenant les valeurs de chaque pixel.
 

Citation :

Avec quel langage ?


puis j ai ouvert le fichier texte et j ai transmi les valeurs dans une matrice surlaquele j ai fait beaucoup de calcul matriciel(multiplicatio, addition, ...) par une classe en C++ que j ai deja fait et à a la fin j ai eu une matrice contenant des valeurs comme l'exemple que j ai donné avant puis j ai mis les valeurs dans un fichier texte.j aimerais bien savoir s il ya un moyen pour convertire ces valeurs à une image de  n importe quelle valeur.
 

Citation :

Ton fichier possède toujours quatre colonnes ?


mon fichier contient 1300 colonnes et 60 lignes
 

Citation :

Sous quelle plateforme ?  


je travaille sous VS 2003

n°1417435
_darkalt3_
Proctopathe
Posté le 01-08-2006 à 14:14:15  profilanswer
 

stiko83 a écrit :

au début il ya avait une image duquelle j ai obtenu une fichier texte contenant les valeurs de chaque pixel.


Les valeurs ? 32 bits en 4x8 bits
...
 

stiko83 a écrit :

Citation :

Avec quel langage ?


puis j ai ouvert le fichier texte et j ai transmi les valeurs dans une matrice surlaquele j ai fait beaucoup de calcul matriciel(multiplicatio, addition, ...) par une classe en C++ que j ai deja fait et à a la fin j ai eu une matrice contenant des valeurs comme l'exemple que j ai donné avant puis j ai mis les valeurs dans un fichier texte.j aimerais bien savoir s il ya un moyen pour convertire ces valeurs à une image de  n importe quelle valeur.


Moi je comprends ceci:
"J'ai pris des valeurs de texte, je les ai passées dans une boite noire, j'ai retrouvé des valeurs, faites en moi une image".
Comment veux tu en faire quoi que ce soit si personne ne sait à quoi correspondent ces valeurs ?
T'as fait ca tout seul ? ou t'as repompé du code que tu ne comprends pas ?
 

stiko83 a écrit :

Citation :

Ton fichier possède toujours quatre colonnes ?


mon fichier contient 1300 colonnes et 60 lignes


 
Ce qui corresponds à ... :??:


Message édité par _darkalt3_ le 01-08-2006 à 14:14:37
n°1417478
icareo
Posté le 01-08-2006 à 14:59:26  profilanswer
 

Pour ce qu'il en avait dit sur un autre forum, à ce que j'ai compris, c'est comme mettre une heightmap dans un fichier image... faire d'une valeur x,y  une couleur proportionelle, stockée dans une image.
 
Arrete moi si je me trompe :)


---------------
tutos de programmation 3D :
n°1417484
pfuitt
Posté le 01-08-2006 à 15:04:56  profilanswer
 

le plus simple c'est pas de te dire que tu as une image de 1300x60 ? donc tu normalises tes valeurs :
[-10000;10000]-->[0;256] (même si le mieux serait de [min; max] -->[0;256], mais  bon)
tu colles un joli entete de bitmap qui va bien (avec la bonne  taille et tout et tout) et tu affiches.
 
Evidement si tu es en RGB n'oublie pas de repeter la valeur de chaque 'pixel' deux fois pour avoir une jolie image
 
alors après, pour la réalité 'physique' de ce que tu vas voir, là je n'ai qu'un mot... CLEP !
 
@pluche


Message édité par pfuitt le 01-08-2006 à 15:06:48
n°1417490
icareo
Posté le 01-08-2006 à 15:07:49  profilanswer
 

Yep, j'ai dja répondu ca sur l'autre forum  :)
 

Citation :


si min= le minimum , et max = le maximum... mets
couleur[x][y] = (char) ((float)valeur[x][y]-min)/(max-min)*256;


 
Après, c'est sur suffit d'écrire ca ds une image au format quelconque...  
Mais faut croire que c'est pas ca ^^


---------------
tutos de programmation 3D :
n°1417492
icareo
Posté le 01-08-2006 à 15:08:41  profilanswer
 

wops, d'ailleurs c'est *255 , et pas *256 si le maximum est ateint :p


---------------
tutos de programmation 3D :
n°1417494
pfuitt
Posté le 01-08-2006 à 15:10:12  profilanswer
 

icareo a écrit :

wops, d'ailleurs c'est *255 , et pas *256 si le maximum est ateint :p


oups ai fait la meme boulettos !
 

mood
Publicité
Posté le 01-08-2006 à 15:10:12  profilanswer
 

n°1417515
Carbon_14
Posté le 01-08-2006 à 15:33:57  profilanswer
 

Pseudo-relief ?

n°1417520
stiko83
Posté le 01-08-2006 à 15:42:12  profilanswer
 

Citation :

le plus simple c'est pas de te dire que tu as une image de 1300x60 ? donc tu normalises tes valeurs :
[-10000;10000]-->[0;256] (même si le mieux serait de [min; max] -->[0;256], mais  bon)
tu colles un joli entete de bitmap qui va bien (avec la bonne  taille et tout et tout) et tu affiches.


 
j ai normalisé les valeurs [min; max] -->[0;256] et j ai repeté les valeurs 2 fois pour le RGB.je veus essayer maintenant avec le format .ppm car il a une entete tres facile a faire et je veux voir ce que je peu voir comme image aprés.
merci

n°1417776
stiko83
Posté le 01-08-2006 à 22:59:37  profilanswer
 

l image que j obtient est mabigu et pas clair de tout.

n°1417832
icareo
Posté le 02-08-2006 à 00:47:46  profilanswer
 

mabigu ??? cai phrenssai sa ?


---------------
tutos de programmation 3D :
n°1417836
el muchach​o
Comfortably Numb
Posté le 02-08-2006 à 00:50:27  profilanswer
 

Utilise un truc comme Matlab/IDL ou tout autre package de visualisation de données. Il y en a pas mal sur le net.


Message édité par el muchacho le 02-08-2006 à 00:51:29
n°1417897
Carbon_14
Posté le 02-08-2006 à 08:53:54  profilanswer
 

Si on regarde l'amplitude des valeurs exemple
764.454    768.429     754.782    775.108
772.542    736.752     -227.144   -215.923
-280.154  -248.948    -227.144   -215.923  
-438.327  -385.182    -352.626   -349.389
et qu'on fait rentrer l'échelle [-10000, +10000] dans [0, 255], ça ne doit pas varier beaucoup !! (-280.154  -248.948    -227.144   -215.923 doivent donner la même amplitude sur 256 niveaux ?)
Il vaudrait peut-être mieux prendre les valeurs maxi/mini effectives des points et les faire rentrer dans la "gamme" [0, 255] (ça fait un zoom)

n°1417904
_darkalt3_
Proctopathe
Posté le 02-08-2006 à 09:08:44  profilanswer
 

Il faudrait surtout voir ce que son exactement ces valeurs, pour peut etre pouvoir les interpreter correctement...

n°1418032
pfuitt
Posté le 02-08-2006 à 11:33:07  profilanswer
 

Carbon_14 a écrit :

Si on regarde l'amplitude des valeurs exemple
764.454    768.429     754.782    775.108
772.542    736.752     -227.144   -215.923
-280.154  -248.948    -227.144   -215.923  
-438.327  -385.182    -352.626   -349.389
et qu'on fait rentrer l'échelle [-10000, +10000] dans [0, 255], ça ne doit pas varier beaucoup !! (-280.154  -248.948    -227.144   -215.923 doivent donner la même amplitude sur 256 niveaux ?)
Il vaudrait peut-être mieux prendre les valeurs maxi/mini effectives des points et les faire rentrer dans la "gamme" [0, 255] (ça fait un zoom)


 
c'est ce qu'il a fait. mais sinon l'idée du pseudo relief est un peu plus compliquée à coder mais bcp plus jolie. Quand à la représentation physique des données, ça, c'est une autre paire de manche...
 

n°1418054
Carbon_14
Posté le 02-08-2006 à 12:22:26  profilanswer
 

Faudrait voir effectivement le phénomène concerné.
Parfois on découpe l'amplitude maxi en 10 et associe 10 couleurs (ça dépend des besoins, et ce qu'on veut visualiser).
 
Même en "zoomant" sur les amplitudes utiles, s'il a quelques points qui atteignent -10000 et +10000, ils seront "hors champ".

n°1418075
jagstang
Pa Capona ಠ_ಠ
Posté le 02-08-2006 à 13:21:39  profilanswer
 

discrete cosine transform ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°1418364
icareo
Posté le 02-08-2006 à 16:47:26  profilanswer
 

Si tu dis que ta gamme va de -10000 à +10000 alors oui, aucune difference entre -280.154  -248.948    -227.144   -215.923 quand tu réduits sur 0-255 !
Ceci dit, si par exemple tu as peu de -1000 et +1000, mais beaucoup de valeurs tournant entre -100 et +100, tu peux utiliser des fonctions mathématiques (tout dépend de ce que t'as comme chiffres...) pour donner plus de précision dans les zones ou ya plus de nombres ! Par contre, les nombres les moins nombreux (dsl, c'est con comme phrase) seront plus...tassés ^^
 
je sais pas si c'est clair...... ??
 
 
bref, si tu veux de la précision, faut pas te ramener à une echelle 0-255 ^^
 
A moins que tu utilises les 3 couleurs pour plus de précision ... ca ferait 256 * 3 paliers... au lieu de 256 :/


Message édité par icareo le 02-08-2006 à 16:50:22

---------------
tutos de programmation 3D :
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Transformer une matrice à une image

 

Sujets relatifs
Image a l'ecranAccess, c# et gallerie d'image
Li (ou image) affiché differement sous IE et FFInserer une petite image entre 2 tables.
changer image au sruvol d'une carte-imageLire un fichier contenant une matrice et le stocker dans un vecteur
Onerror et imageTransformer un DataInputStream en byte[ ] [RESOLU]
HTML Image Affichage 
Plus de sujets relatifs à : Transformer une matrice à une image


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR