AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi String aus einer Datei auslesen und verwerten
Thema durchsuchen
Ansicht
Themen-Optionen

String aus einer Datei auslesen und verwerten

Offene Frage von "Sangius"
Ein Thema von Sangius · begonnen am 20. Jul 2005 · letzter Beitrag vom 22. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Sangius

Registriert seit: 20. Jul 2005
7 Beiträge
 
#1

String aus einer Datei auslesen und verwerten

  Alt 20. Jul 2005, 11:02
Guten Tag, ich hoffe dies hier ist die richtige Anlaufstation. Zunächst zu der von mir verwendeten Delphi-Version: Ich benutze Borland-Delphi7.

Meine Aufgabenstellung ist, ein Bild auszuwerten. Zunächst habe ich dieses in eine PPM-Datei umgewandelt. Nun möchte ich den Text einlesen und nach bestimmten Farben suchen (p3-Farben, also dreier Kombinationen von einzelnen RGB-Werten). Mein Problem: Ich habe bisher im Internet nichts gefunden, was mir helfen konnte. Lange Rede, kurzer Sinn: Wie lese ich ein Worddocument aus und verarbeite dann die entsprechende Arrays? Und ja, ich habe bereits in diversen Foren nach diesem Thema gesucht.

Mit der Bitte um rasche Hilfe (habe ein Mathematikerteam im Nacken),
Sangius
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: String aus einer Datei auslesen und verwerten

  Alt 20. Jul 2005, 12:45
Zitat von Sangius:
Meine Aufgabenstellung ist, ein Bild auszuwerten. Zunächst habe ich dieses in eine PPM-Datei umgewandelt.
Mit PPM meinst du "Portable Pixelmap format" ???
Also eine Textdatei nach diesen Regeln: http://www.wotsit.org/download.asp?f=ppm

Warum hast du das Bild nicht im Windows/OS2 Bitmap Format gespeichert ?
Zitat von Sangius:
Lange Rede, kurzer Sinn: Wie lese ich ein Worddocument aus und verarbeite dann die entsprechende Arrays?
Wieso Worddocument, das hat doch mit PPM nicht zu tun ?
Andreas
  Mit Zitat antworten Zitat
Sangius

Registriert seit: 20. Jul 2005
7 Beiträge
 
#3

Re: String aus einer Datei auslesen und verwerten

  Alt 20. Jul 2005, 16:48
Ja, es handelt sich um das Portable Pixelmap format. Ich habe es mit word geöffnet und dann den Code in einem solchen Dokument gespeichert. Der File Access zu deinem Link wurde leider geblockt. Meine Vorgehensweise erscheint mir als am angemesstesten. Wie lese ich denn nun aus dem Worddokument die Werte aus und suche nach ihnen? (Dein Link funktioniert bei mir leider nicht).
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: String aus einer Datei auslesen und verwerten

  Alt 20. Jul 2005, 17:06
Hi Sangius,

Zitat von Sangius:
Zunächst habe ich dieses (Bild) in eine PPM-Datei umgewandelt. Nun möchte ich den Text einlesen und nach bestimmten Farben suchen
du willst einen Farbauszug erstellen? Wie groß sind denn die Bilder, welche Farbtiefe haben sie und in welchem Format liegen sie vor, bevor du sie nach PPM umwandelst?

Grüße vom marabu
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: String aus einer Datei auslesen und verwerten

  Alt 20. Jul 2005, 17:12
Zitat von Sangius:
Ja, es handelt sich um das Portable Pixelmap format. Ich habe es mit word geöffnet und dann den Code in einem solchen Dokument gespeichert. Der File Access zu deinem Link wurde leider geblockt. Meine Vorgehensweise erscheint mir als am angemesstesten. Wie lese ich denn nun aus dem Worddokument die Werte aus und suche nach ihnen? (Dein Link funktioniert bei mir leider nicht).
Wenn der direkte Link nicht funktioniert, dann nimm http://www.wotsit.org und gib oben links
PPM ein; dann auf "Search Wotsit" klicken.
Ich habe die Doku mal angehängt.
PPM ist als ganz normale ASCII Textdatei definiert.
Das Worddokument hat eine sehr komplexe Struktur; also keinesfalls WinWord ins Spiel bringen, sondern höchstens Notepad (oder ähnliche Editoren)!!!
Schritt 1:
Die PPM - Datei soll geladen werden. Setz ein Memo auf dein Formular und dann:
Delphi-Quellcode:
begin
   Memo1.Lines.LoadFromFile('C:\testbild.PPM');
end;
Da das PPM Format lesbar ist, wird der Inhalt im Memo angezeigt. Du kannst im Memo von Hand editieren und neu speichern.
Lies dazu: http://www.dsdt.info/tutorials/listen/
Schritt 2:
Der Inhalt von Memo1.Lines wird zeilenweise gelesen und analysiert.

Schritt 3:
Es wird ein Bitmap erzeugt und in einem TImage anzeigt.
Lies dazu: http://www.dsdt.info/tutorials/bitmap/
Angehängte Dateien
Dateityp: zip ppm-docu_126.zip (1,2 KB, 5x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
Sangius

Registriert seit: 20. Jul 2005
7 Beiträge
 
#6

Re: String aus einer Datei auslesen und verwerten

  Alt 21. Jul 2005, 08:38
Ich bekomme bereits eine Access Violation, wenn ich die Datei zu öffnen versuche. Außerdem weiss ich nicht, als was ich Memo1 definieren soll. Es handelt sich hierbei doch um eine Variable, oder etwa nicht?

Habe mir den Artikel durchgelesen, kann mir aber in meinem derzeitigen Zustand nicht sehr viel helfen.

Könnte man es nicht zunächst - relativ unkompliziert - über ein .txt-Dokument probieren? Ich bekomme ja selbst das, dank diverser Fehlermeldungen, nicht hin.

Zitat von marabu:
du willst einen Farbauszug erstellen?
Nunja, ich soll ein Bild nach bestimmten Farben durchsuchen. Nichts visuelles, nur die Anzahl einer bestimmten Farbe ermitteln.

Zitat von marabu:
Wie groß sind denn die Bilder, welche Farbtiefe haben sie und in welchem Format liegen sie vor, bevor du sie nach PPM umwandelst?
Die Bilder sind meist in der Auflösung 760*568, der Farbtiefe 24 bits und im Bitmap-Format vorhanden. Ich habe sie dann in 8-bit (256-Farben) und dann in ein PPM umgewandelt. Nun möchte ich die p3-Dateien nach bestimmten Grautönen durchsuchen und jedesmal, wenn das Programm fündig wird, einen Counter um eines erhöhen, um schlussendlich auf die Gesamtzahl einer bestimmten Farbe zu kommen. Wenn ich diese Variablen erstmal mit Werten habe, dann ist mir schon sehr geholfen. Von euch kommt nicht zufällig jemand aus dem Großraum Mannheim?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: String aus einer Datei auslesen und verwerten

  Alt 21. Jul 2005, 15:28
Hallo Sangius,

ich habe dir mal ein Beispiel erstellt, wie man ein Farbhistogramm für eine Bitmap erstellt. Die Umwandlung in ein anderes Format ist dafür nicht notwendig.

Grüße vom marabu

Habe einen Fehler im Programm beseitigt.

Habe noch einen Fehler im Programm beseitigt...
Angehängte Dateien
Dateityp: zip colhist_177.zip (2,9 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Sangius

Registriert seit: 20. Jul 2005
7 Beiträge
 
#8

Re: String aus einer Datei auslesen und verwerten

  Alt 21. Jul 2005, 17:45
Ich möchte dir erstmal sehr danken. Wirklich, das weiss ich zu schätzen. Nur eine Sache fehlt mir noch:

Das Verständnis der Werte, die ausgegeben werden.

Lade ich das Bild, das im Anhang ist, so erhalte ich die Werte:

000000=197
FFFFFF=25403
FFFFFFFF=132024


Was will mir das sagen?

Woher kommst du noch gleich?
Angehängte Grafiken
Dateityp: bmp neu_bitmap_210.bmp (75,1 KB, 30x aufgerufen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: String aus einer Datei auslesen und verwerten

  Alt 21. Jul 2005, 18:59
Hallo Sangius,

dein Bild ist quadratisch und hat eine Kantenlänge von 160 Pixeln - das macht insgesamt 25.600 Pixel. Mein Programm bestimmt die Farbe für jedes Pixel und wandelt sie in einen Hex-String um. 000000 ist schwarz, FFFFFF ist weiss, FF0000 ist blau, 00FF00 ist grün und 0000FF ist rot. Die letzte Zeile mit FFFFFF ist aufgrund eines Fehlers von mir entstanden, den ich soeben korrigiert habe - du solltest dir das Programm noch einmal herunter laden.

Die Zahl hinter dem Gleichheitszeichen ist die Häufigkeit, mit der ein bestimmter Farbwert im Bild vorkommt. Alles klar jetzt?

marabu
  Mit Zitat antworten Zitat
Sangius

Registriert seit: 20. Jul 2005
7 Beiträge
 
#10

Re: String aus einer Datei auslesen und verwerten

  Alt 21. Jul 2005, 19:04
So weit, so gut. Was müsste ich machen, wenn ich verschiedene Graustufen differenzieren würde wollen? Z.B. RGB-Farben auslesen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz