Hi pebisoft!
Ich habe es mir ein wenig schwierig gemacht.
Mein Roboter sendet die Daten an meinen "Server",der wiederrum die Daten an einen Client per TCP sendet. Den Client habe ich mit Java programmiert, hier werden aus den Bilddaten (Byte) RGB's erstellt, und angezeigt. Zur Zeit kämpfe ich noch damit, dass ich manchmal ein weißes "Überblenden" habe (besonders bei starken Tageslicht). Habe bis jetzt versucht, dies durch Konfiguration der Cam zu lösen, bekomme dies aber nicht hin.
Denke ich muss einfach die eingehenden Pixelwerte ein wenig auseinanderziehen, um den Kontrast zu erhöhen (auf Client Seite).
Sorry, ein einzelnes Programm das die Bilderanzeigt habe ich nicht, insgesamt ist mein Client-Programm schon ziemlich groß geworden.
Habe mir ein eigenes Objekt geschrieben (abgeleitet von JComponent) und die paint Methode überlagert, um ein Bild darzustellen. Hier der entscheidene Code (wie gesagt noch nicht ideal, da die Pixelwerte zu nah beieinander liegen):
Code:
public void newPic(byte[] camdata)
{
//displays a new Picture
for(int i=0;i< (w*h); i++)
{
rgbdata[i] = (int)(0xFF000000+(Tools.convertBytetoInt(camdata[i]) << 16)
+ (Tools.convertBytetoInt(camdata[i]) << 8)
+ Tools.convertBytetoInt(camdata[i]));
}
ImageProducer p = new MemoryImageSource( w, h, rgbdata, 0, w );
image = frame.createImage( p );
repaint();
}
Lesezeichen