Help - Search - Member List - Calendar
Full Version: Exportation Bmp...
OpenSpace > Zone Ordinateurs > Programmation
irion_d_alcor
me demande bien ce que je fous dans cette zone moi... c est bien la premiere fois smile.gif

voila j ai un ami qui m a demandé comment je pouvais sortir de deux bmps relativement similaire , la coloration de chaque pixel afin de faire un comparatif dans une table.

explication de l utilité d un truc pareil. en fait ces images proviennent de programmes de calculs de resistances de materiaux qui expriment la couleur en fonction de l effort. le probleme c'est qu'on que les images et pas le programme et qu il nous faut faire un comparatif pour connaitre les zones d'effort distincts.

j'ai donc besoin (ca c est le top) d une table excel rassemblant les lignes des pixels en lignes , les colomnes de pixels en colomne (sans dec' ? ) , pour les trois types de coloration RGB. cela sur une image 800*600.
le comparatif ca je me demerde no probleme.

tout ce qu il me faut c est le necessaire de cuisine pour passer de l'image a la table.

est ce que qq un connait un programme de derriere les fgots qui fait ca?
si non est ce que c est trop simple a faire et qu'il y a qq un qui peut me programmer en 5/7. (limite macro excel VB , mais malheureusement ma connaissance VB se limite a savoir mettre en marche la macro) ou alors au pire qu on me donne le necessaire pour exporter les couleurs de l'image , ce qui se traduit par transcrire le format du bmp dans un texte proprement et l ouvrir en table ensuite...



Sha
Ben c'est pile le genre de truc que doit faire le soft que je suis en train de développer. Si t'es pas trop pressé je te le filerais dès que ce sera avancé, donc plutôt la semaine prochaine voir celle d'après.

Pour info je me base sur spot2titus un logiciel de traitement d'images satellitales :

http://www.ac-dijon.fr/pedago/histgeo/ense.../spot2titus.htm

Ce logiciel permet de visualiser les valeurs numériques de chacun des pixels, mais pas de les exporter (analyse / valeurs numériques / extraction num.).

Sinon tu peux aussi aller voir du côté de www.wotsit.org pour avoir les caractéristiques des (oui il y en a plusieurs) formats bmp.
irion_d_alcor
lol sha decidemement t es la reponse a tout mes problemes.

moi personnellement je suis pas pressé c est pas pour moi smile.gif

Par contre evidemment si c est exactement le soft que tu realises il est clair qu il vaut mieux attendre un peu.
Darhf
Je *pense* que je peux très rapidement pondre un logiciel qui prends un bmp en entrée et ponds 3 fichiers csv (un pour chaque couleur si j'ai bien compris) en sortie.
Darhf
user posted image

Cadeau

Je suis pas certain pour le format csv, tu me dis si tu l'importes bien puis sinon je corrige.
Sha
Dahrf c'est un rapide ;-)

J'y pense, Irion, Excel ne doit pas pouvoir gérer les 800 colonnes d'un coup, alors découpe l'image d'origine en petits morceaux.
irion_d_alcor
mais ca m a l air de marcher niquel ca!! smile.gif

ceci dit je capte pas pourquoi excel me d it qu il ne peut pas ouvrir la base correctement , et juste derriere il le fait!
apparement t as crée un maximum de 800*600 lignes comme j avais demandé merci.
maintenant pour le comparatif je me demerde

merci encore c est genial.
je dis a mon pote de passer dans le coin pour qu il vous fasse plein de bises, euh qu il vous serre la main:)
irion_d_alcor
ptdr! sha aussi c est un rapide il a anticipé mon probleme pendant que je repondais smile.gif

merci a tout les deux z etes des dieux. rolleyes.gif
PoP
nan c'est pas des Dieux, c'est des Goules et des Orcs! biggrin.gif
Darhf
Bof, tu sais ce que ça m'a couté en temps ?

CODE

procedure TFrmmain.btnGoClick(Sender: TObject);
var
x,y:integer;
tmplnR,tmplnG,tmplnB:widestring;
col:Longint;
begin
   MemExR.Lines.Clear;
   MemExG.Lines.Clear;
   MemExB.Lines.Clear;
   for y:=0 to 599 do begin
    tmplnR:='';
    tmplnG:='';
    tmplnB:='';
    for x:=0 to 799 do begin
       col:=ColorToRGB(Img.Canvas.Pixels[x,y]);
       tmplnR:=tmplnR+inttostr(GetRvalue(col))+',';
       tmplnG:=tmplnG+inttostr(GetGvalue(col))+',';
       tmplnB:=tmplnB+inttostr(GetBvalue(col))+',';
       imgR.Canvas.Pixels[x,y]:=RGB(GetRvalue(col),0,0);
       imgG.Canvas.Pixels[x,y]:=RGB(0,GetGvalue(col),0);
       imgB.Canvas.Pixels[x,y]:=RGB(0,0,GetBvalue(col));
    end;
      MemexR.Lines.Add(tmplnR);
      MemexG.Lines.Add(tmplnR);
      MemexB.Lines.Add(tmplnR);

   end;
   Forcedirectories(ExtractFiledir(Paramstr(0))+'\Exports\');
   MemExR.Lines.SaveToFile(ExtractFiledir(Paramstr(0))+'\Exports\'+ExtractFilename(DlgLoad.FileName)+'_RED.csv');
   MemExG.Lines.SaveToFile(ExtractFiledir(Paramstr(0))+'\Exports\'+ExtractFilename(DlgLoad.FileName)+'_GREEN.csv');
   MemExB.Lines.SaveToFile(ExtractFiledir(Paramstr(0))+'\Exports\'+ExtractFilename(DlgLoad.FileName)+'_BLUE.csv');
   MessageDlg('Traitement Terminé'+#10#13+'Les fichiers sont disponibles dans le répertoire :'+#10#13+ExtractFiledir(Paramstr(0))+'\Exports\', mtInformation, [mbOK], 0);
end;


Donc merci delphi plutôt biggrin.gif
momo
une "soustraction " des images via un logiciel de retouche digne de ce nom est une des solutions qui me sont passé par la tête.. smile.gif
irion_d_alcor
j y avais pensé aussi , mais je voulais quantifier la difference , le csv c est pas mal pour ca:)
momo
ah, bah, s'il faut quantifier ..
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.