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
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