Forum: PC-Programmierung Frame von Webcam auslesen in Array


von Matthias R. (mons)


Lesenswert?

Hallo,
nachdem OpenCV für meine Zwecke anscheinend nicht zu gebrauchen ist, hab 
ich jetzt eine andere Idee:
Ist es möglich über dev Interface von Linux (meine Webcam wird als 
/dev/video0 eingebunden, vermutlich über einen V4L Treiber) einzelne 
frames auszulesen und in ein Array wie
1
Dateityp* frame[320][640][8]
für ein 8 bit tiefes Bild zu speichern?

Danke schon mal für die Hilfe!!
LG Matthias

von Programmierer (Gast)


Lesenswert?

Du könntest dir anschauen, wie es framegrabber Applikationen wie 
streamer machen. Die besorgen sich ja irgend wie den Datenstrom und 
dampfen ihn dann mit einem Standardcodec ein.

http://tldp.org/HOWTO/Webcam-HOWTO/framegrabbers.html

Wenn du mehr rausfindest, lass es uns wissen. :)

von morgul (Gast)


Lesenswert?

was ist denn das Problem mit OpenCV?

von Matthias R. (mons)


Lesenswert?

@morgul
2 Threads untendrunter ;)
Danke für den Link, ich guck mal ob ich den Sourcecode von einer Alpha 
Version von streamer finde, die aktuellste hat so viele Features, da 
verliert man den Überblick..

von Mike J. (emjey)


Lesenswert?

Matthias R. schrieb:
> Dateityp* frame[320][640][8]
> für ein 8 bit tiefes Bild zu speichern?

Das Bild kannst du als Image-Typ speichern, der Aufbau ist dann so in 
der Art:

Pixel0 , Pixel1 , ... , Pixel307199
RGBARGBA          ...   RGBA

Das ist dann also ein Array mit (640 x 480 x 4) Bytes (bei einer 
Auflösung von 640x480 Pixel) die alle hintereinander stehen.

Jeder Pixel besteht aus 4 Byte (32 Bit), also Byte 0,1,2,3 ist Pixel0 
und Byte 4,5,6,7 sind Pixel1.

von Joerg W. (joergwolfram)


Lesenswert?

Ich habe soetwas schon gemacht und zwar um Objekterkennungs-Algorithmen 
zu testen. Der Transfer ging über video_mmap oder so, wobei man auch 
unterschiedliche Formate nutzen konnte. Das Auslesen in das Array habe 
ich dann "zu Fuß" (und gleichzeitig noch diverse Korrekturen) gemacht.

Jörg

von Matthias R. (mons)


Lesenswert?

Danke für die Antworten!! ich hab mein Problem mitlerweile andertswärtig 
gelöst ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.