PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wie komme ich an webcam-Pixeldaten


lateralus
16.02.2005, 12:54
Hallo,

Ich würde gerne Zugriff auf die Pixel eines Webcambildes im RGB-Format haben.
Wie ich zu einem Frame komme ist klar, dazu gibt es ja unzählige Beispiele im Netz:






capSetCallbackOnFrame(hwndVideo,FrameCallbackProc);






LRESULT CALLBACK FrameCallbackProc(HWND hwnd, LPVIDEOHDR lpVHdr)






{// Buffer befindet sich nun in lpVHdr->lpData[]



return TRUE;



}





Bei einer Webcam mit der Auflösung 640*480 is dieser Buffer 460800 Bytes groß, also 640*480*1.5. Es ist mir einfach ein Rätsel wie dieser Buffer zu interpretieren ist. Nach langem herumgegoogle vermute ich mal daß es irgendwie was mit DIB/DDB zu tun hat, irgendwie verbirgt sich da wohl auch die Palette im Buffer und Indices zu dieser Palette??? Ich bräuchte die Pixeldaten als RGB-Werte pro Pixel. Kann mir vielleicht jemand erklären wie ich das umrechnen kann?




lg,
Michael


Felix Kaiser
16.02.2005, 14:16
Es handelt sich dabei tatsächlich um ein DIB. Wie der Name schon sagt, gerätabhängiges Bitmap. Das brauchst du nur noch in ein RGB Bitmap konvertieren lassen. Ich nutze dazu die API Funktion StretchDIBits.

butterkeks
16.02.2005, 14:59
gerätabhängiges Bitmap
Geräteunabhängiges Bitmap
</klugscheiß>