Hallo Leute,
ich habe eine Kamera, die RGB Werte über die UART sendet. Diese Werte
möchte ich auf dem PC als Video empfangen. Kennt jemand so ein Programm,
welches die Daten übersetzt und als Video anzeigt?
Die RGB Werte sind übrigens komprimiert, d.h. für jeden Pixel (insgesamt
19200 Pixel, also 160x120) ist nur 1 Byte für die RGB Farben. Die Farben
kann ich alternativ auch rausfiltern und über UART jede Farbe
nacheinander verschicken.
Würde mich freuen wenn jemand so ein Programm kennt. Danke im Voraus!!
Interessantes Problem...
Mit welcher Geschwindigkeit sendet die Kamera? Müssen die Daten in
Echtzeit dargestellt werden oder dürfen sie aufgezeichnet und danach
abgespielt werden? Im diesem Fall würde ich mal gucken welche
unkomprimierten Codecs (weil einfacher als JPG und Co.) VLC abspielt und
die Daten mittels selbstgeschriebenem Programm ins passende Format
bringen (Daten empfangen, konvertieren und AVI-Header dranbasteln oder
so).
Knusperkeks schrieb:> Die Kamera sendet die Bilder zwischen 5 und 8 fps und soll in Echtzeit> angezeigt werden.
19.200Pixel * 8Bit/Pixel * 5fps = 768.000Bits/s
Meiner Meinung nach schafft das ein Standard PC-RS232-Port nicht.
Hm da hast du recht, die Kamera nimmt in der o.g. Geschwindigkeit auf.
Die Daten werden dann noch in der Kamera verarbeitet (Objekterkennung)
und soll dann die Ergebnisse über die UART Schnittstelle angezeigt
werden.
Da ich jedoch wissen muss was die Kamera sieht und wie tief die Farben
sind, wollte ich mir das als Video in "Echtzeit" anzeigen lassen.
Es ist also nicht schlimm wenn das Video langsam ist, solange ich
erkennen kann was sich in der Kamera abspielt!
Also was den nun? Schiebt die Kamera alle Bilder raus oder wird nur
jedes 2. oder 3. Bild gesendet weil die Verbindung zu langsam ist? Oder
kommt da ganz was anderes raus?
Mehr Infos bitte.
Knusperkeks schrieb:> die RGB Werte über die UART sendet
Bist du da wirklich sicher?
Und was sind schon RGB-Werte? Bitmap? Jpeg? oder?
Alleine das schliesst das ja schon aus:
J.-u. G. schrieb:> 19.200Pixel * 8Bit/Pixel * 5fps = 768.000Bits/s
Zumal RGB auch nicht 8 Bit sondern 24 sind.
Knusperkeks schrieb:> soll dann die Ergebnisse über die UART Schnittstelle angezeigt
Das Ergebnis einer Objekterkennung ist ja im einfachsten Fall ja oder
nein. Aber nicht unbedingt eine Bildübertragung.
Hat denn der Hersteller der Kamera nichts im Angebot?
mfg.
Ok sorry, nochmal genauer. Die Kamera nimmt laut Hersteller Bilder bis
zu 10 fps auf. Jedes aufgenommene Bild wird in der Kamera analysiert und
verarbeitet. Dadurch verringert sich wohl die Geschwindigkeit der
Aufnahme. Dieses ist jedoch nicht relevant.
Ich möchte nun zusätzlich jedes aufgenommene und verarbeitete Bild über
die UART Schnittstelle an den PC senden um diese dann als Video anzeigen
zu lassen. Wie genau die Geschwindigkeit ist, weiss ich leider nicht und
ist auch hier nicht relevant. Hauptsache ist, ich sehe unmittelbar nach
dem Empfangen der Daten das Bild auf dem PC.
Das Video brauche ich, damit ich die Ergebnisse der Objekterkennung
überprüfen kann.
lg
jetzt nenn doch einfach mal den Typ der Kamera oder eventuell gleich ein
Links auf das Datenblatt. Es gibt kein Standard für die übertragung von
Bilder auf UART.
Eventuell liefert die Kamera gar keine Bilder nur das Ergebniss der
Erkennung.
Hallo Thomas,
ja ich bin mir sicher dass es RGB Werte sind. Wie oben schon erwähnt
handelt es sich um komprimierte RGB Werte, so dass für jeden Pixel nur 1
Byte Farben benötigt wird. (3 Bits für rot, 3 Bits für grün und nur 2
Bits für blau)
Die Objekterkennung liefert nicht nur ein ja oder nein, sondern um was
es sich für ein Objekt handelt (natürlich vordefinierte Objekte) und
sonstige Eigenschaften.
Meine Frage beläuft sich hier auch gar nicht auf die Objekterkennung.
Knusperkeks schrieb:> ja ich bin mir sicher dass es RGB Werte sind. Wie oben schon erwähnt> handelt es sich um komprimierte RGB Werte, so dass für jeden Pixel nur 1> Byte Farben benötigt wird. (3 Bits für rot, 3 Bits für grün und nur 2> Bits für blau)
Dann gib uns bitte endlich eine Beschreibung des Datenformats und des
Protokolls der Videoübertragung. Sonst kann Dir keiner weiterhelfen.
Peter II schrieb:> jetzt nenn doch einfach mal den Typ der Kamera oder eventuell gleich ein> Links auf das Datenblatt. Es gibt kein Standard für die übertragung von> Bilder auf UART.>> Eventuell liefert die Kamera gar keine Bilder nur das Ergebniss der> Erkennung.
Leute, danke erstmal dass ich euch hier soviel Mühe gebt. Aber mir geht
es hier wirklich nicht um die Objekterkennung. Auch dürfte die Kamera
nicht von belangen sein, da ich nur gefragt habe wie ich die RGB Werte
auf dem PC anzeigen lassen kann.
Die Kamera nennt sich POB-EYE 2 (von der Firma POB-Technology).
Ausserdem liefert die Kamera die Bilder und nicht nur die Erkennung, da
ich das Programm der Objekterkennung selbst geschrieben habe.
Normalerweise habe ich ein LCD Display zur Verfügung, auf welchem ich
dann sehen kann was die Kamera sieht. Diese habe ich jedoch nicht übers
Wochenende zur Verfügung. Deswegen wollte ich das auf dem PC anzeigen
lassen.
die bilder werden nicht über uart/usb übertragen
The USB connector (a mini-B female connector) allows you to upload a new
firmware and to
communicate with the POB-EYE2 by a serial port with your computer: The
POB-EYE2 converts
the USB link to a serial link.
Nachtrag:
The POB-EYE2 comes with a second UART, named UART1. You can use them
freely in your
application.
du kannst also den 2.Port selber nutzen, dafür muss das die Firmware
anpassen. Dann kannst du dir ja ein Protokoll ausdenken.
Hallo Peter,
Übertragung war leider auch nicht Teil meiner Frage. Die Übertragung
findet problemlos statt. Ich kann über das Hyperterminal alle RGB-Werte
empfangen. Nur sind es eben reine Zahlen die ich Empfange. Wenn ich das
Bild binarisiert über das Hyperterminal schicke, also nur 0 oder 1, dann
kann ich sogar Umrisse und Muster erkennen. Jedoch habe ich dann keine
Informationen über die Farben.
Also, wie gesagt, es sind komprimierte RGB Werte die auf dem PC
empfangen werden. Jetzt kommt die Weiterverarbeitung. Und genau hier war
meine Frage.
Knusperkeks schrieb:> Wenn ich das> Bild binarisiert über das Hyperterminal schicke
Sorry, bevor gleich wieder ne Frage in falscher Richtung kommt. Ich
meinte natürlich: Wenn ich das Bild binarisiert über das Hyperterminal
EMPFANGE...
du musst ja erstmal erkennen wo ein bild anfängt und wo es endet - also
brauchst du schon mal eine Protokoll.
Dafür wird es keine Standard software geben. Also muss dir eine
schreiben (mit C# sollte das kein Problem sein).
Einfach ein Bild anlegen und der reihe nach die Pixel mit den empfangen
daten aufüllen. Da hier eh die uart die begrenzung ist braucht du dir um
die geschwindigkeit keien sorgen zu machen.
Ok danke, das ist wohl eine Lösung. Mit C# kenne ich mich leider nicht
aus, aber habe gerade ein wenig gegoogelt und gesehen dass man damit
relativ leicht zeichnen kann.
Nun setz ich mich mal ran. Danke nochmal an alle und sorry für die
Verwirrung.
Eine eigene Frage?
Dieser Thread ist über 15 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.