Bitmap in .txt konvertieren.

Gast #3384350
Lesenswert?
• ▲
▼
Böser Kommunist schrieb:
> Ich will ein Bild  via UART  an FPGA-Board übersenden.
cat meinBild.bmp >> /dev/ttyS0

und schon hast es am FPGA-Board. Im FPGA musst nur noch den Header 
überspringen und dann kommen die Bilddaten wunderschön leicht 
verarbeitbar binär rein. Wozu erst kompliziert die Zahlen dezimal 
darstellen und im FPGA wieder binär zurückrechnen?! Das BMP-Format ist 
supereinfach zu verarbeiten (kannst quasi direkt so in Video-RAM => 
RAMDAC schieben), ganz im Gegensatz zu deinem komischen Textformat.
#3384353
Lesenswert?
• ▲
▼
Okay. Wieso geht das nicht mit 8-Bit-Worten? Dem UART ist es egal ob Du 
Text oder Binärdaten überträgst.

Wenn es nur druckbare Zeichen sein dürfen, dann kannst Du auch sowas wie 
ein base64_encode verwenden, das wird z.B. in eMails gemacht.

Aber auf jeden Fall würd ich kein Bitmap dermaßen in Textform aufblasen 
wie Du es vor hast. Sonst wird aus einer 2 MByte .BMP-Datei eine 9..10 
MByte Textdatei. Sowas willst Du nicht durch einen UART jagen.
Gast #3384356
Lesenswert?
• ▲
▼
> Ich will ein Bild  via UART  an FPGA-Board übersenden.

Mögliche sinnvolel Herangehensweisen:
- bring dem FPGA ein vernünftiges Format bei, z.B. JPEG oder PNG.
- nimm fertige, primitiv-einfach zu benutzende Bibliotheken wie opencv 
und boost und schreib Dir ein kurzes Progrämmchen für die Aufgabe
- nimm convert aus ImageMagick um das Bild als Text zu dumpen, parse das 
Ergebnis adäquat..
1
$ time convert some.jpg out.txt
2
real    6m23.164s
3
user    6m21.200s
4
sys     0m1.484s
5
$ echo .oO\(nichtgradschnell\) > /dev/null
6
$ ls -sh out.txt 
7
855M out.txt
8
$ head -n 3 out.txt 
9
# ImageMagick pixel enumeration: 5184,3456,255,srgb
10
0,0: ( 41, 61, 98)  #293D62  srgb(41,61,98)
11
1,0: ( 26, 46, 79)  #1A2E4F  srgb(26,46,79)
Gast #3384696
Lesenswert?
• ▲
▼
>> - bring dem FPGA ein vernünftiges Format bei, z.B. JPEG ...
[oder PNG]
>
> Nicht jeder möchte, dass die Bilder bei der Übertragung verändert und
> vermatscht werden. Bei Bildkompression auf der Übertragungsstrecke
> sollte man sich über die Bildinhalte im klaren sein.

..deswegen nimmt man dafür selbstredend das Format, in dem die Originale 
eh vorliegen (z.B. JPEG) oder ein verlustfreie komprimierendes welches.

> die Bilder (ca. 512x512) werden nur zur Mustererkennung verwendet

Ok, das ist nicht groß. Klingt aber auch nicht nach JPEG :-)

Übrigens der Vollständigkeit wegen: Sowohl BMP (RLE) als auch TIFF (LZW 
und andere (und verlustbehaftet JPEG)) können verlustfrei packen - 
Effizienz inhaltsabhängig.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.