Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String aus einer Datei auslesen und verwerten (https://www.delphipraxis.net/50072-string-aus-einer-datei-auslesen-und-verwerten.html)

Sangius 20. Jul 2005 11:02


String aus einer Datei auslesen und verwerten
 
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

shmia 20. Jul 2005 12:45

Re: String aus einer Datei auslesen und verwerten
 
Zitat:

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:

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 ?

Sangius 20. Jul 2005 16:48

Re: String aus einer Datei auslesen und verwerten
 
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).

marabu 20. Jul 2005 17:06

Re: String aus einer Datei auslesen und verwerten
 
Hi Sangius,

Zitat:

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

shmia 20. Jul 2005 17:12

Re: String aus einer Datei auslesen und verwerten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

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/

Sangius 21. Jul 2005 08:38

Re: String aus einer Datei auslesen und verwerten
 
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:

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:

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? ;)

marabu 21. Jul 2005 15:28

Re: String aus einer Datei auslesen und verwerten
 
Liste der Anhänge anzeigen (Anzahl: 1)
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...

Sangius 21. Jul 2005 17:45

Re: String aus einer Datei auslesen und verwerten
 
Liste der Anhänge anzeigen (Anzahl: 1)
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?

marabu 21. Jul 2005 18:59

Re: String aus einer Datei auslesen und verwerten
 
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

Sangius 21. Jul 2005 19:04

Re: String aus einer Datei auslesen und verwerten
 
So weit, so gut. Was müsste ich machen, wenn ich verschiedene Graustufen differenzieren würde wollen? Z.B. RGB-Farben auslesen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz