SCIPIO-AEMILIANUS
aka Dubdidadu
Ich arbeite grad daran einen Motiontracker mithilfe der MFC in C++ anzufertigen.
Gleich am Anfang traf ich auf das Problem, dass ich es nicht schaffe eine ordentliche Qualität aus der Webcam zulocken, die sie eigentlich leisten kann.
Die Farbtiefe/Farbzahl ist nicht sehr groß und auch die Auflösung kommt nur auf 320*240 selbst wenn ich eine Größere einstelle.
Mein Code bisher:
Die Webcam hat 1,3 MP ergo sollte der Code ja zumindest die 640*480 Pixel schaffen. Mir ist bewusst das capPreviewScale und capPreview die beiden bool Parameter die Ausgabegröße beeinflussen jedoch in diesem Fall sollte es auf die maximale Input Maße zurechtschneidern.
Ich hab selbiges mal in Flash realisiert und dort hab ich die 1,3 MP voll ausnutzen können, jedoch halt nicht in C++. Was muss ich tun um dieses zu erreichen?
EDIT: So, ich hab mich noch ein wenig durch Google durchgegraben und herausgefunden das der Treiber standartmäßig von 320*240Pixel bei 16bit farbtiefe ausgeht. Aber wie man es hochsetzt hab ich noch nicht herausfinden können.
Gleich am Anfang traf ich auf das Problem, dass ich es nicht schaffe eine ordentliche Qualität aus der Webcam zulocken, die sie eigentlich leisten kann.
Die Farbtiefe/Farbzahl ist nicht sehr groß und auch die Auflösung kommt nur auf 320*240 selbst wenn ich eine Größere einstelle.
Mein Code bisher:
C++:
CAPTUREPARMS Cap;
hWnd_DLG = capCreateCaptureWindow(L"CameraWindow", WS_CHILD | WS_VISIBLE, 0, 0, 640, 480, GetSafeHwnd(), 1) ;
capDriverConnect(hWnd_DLG,0);
capCaptureGetSetup(hWnd_DLG, &Cap, sizeof(CAPTUREPARMS));
Cap.fYield = false;
Cap.fCaptureAudio = false;
Cap.fLimitEnabled = false;
Cap.wTimeLimit = 0;
Cap.dwIndexSize=0;
capCaptureSetSetup(hWnd_DLG, &Cap, sizeof(CAPTUREPARMS));
capPreviewScale(hWnd_DLG,false) ;
capPreviewRate(hWnd_DLG,25);
capPreview(hWnd_DLG,true);
Ich hab selbiges mal in Flash realisiert und dort hab ich die 1,3 MP voll ausnutzen können, jedoch halt nicht in C++. Was muss ich tun um dieses zu erreichen?
EDIT: So, ich hab mich noch ein wenig durch Google durchgegraben und herausgefunden das der Treiber standartmäßig von 320*240Pixel bei 16bit farbtiefe ausgeht. Aber wie man es hochsetzt hab ich noch nicht herausfinden können.
Zuletzt bearbeitet von einem Moderator: