D
Hi Leute,
hab folgendes Programm erstellt:
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <windows.h>
#include <conio.h>
int mainLoop()
{
// Variablen definieren
int waitKeyReturnValue = 0;
int iHelp = 0;
int iBigWidth = 1272;//Breite großes Fenster
int iBigHeight = 765;//Höhe großes Fenster
int iSmall= 300;//Größe kleines Fenster
//Koordinaten kleines Fenster
int iX=971;
int iY=465;
IplImage image;
IplImage image1;
CvCapture capture = NULL;
CvCapture capture1 = NULL;
// Kamerasignale holen
capture = cvCaptureFromCAM(1);
capture1 = cvCaptureFromCAM(2);
if( !capture || !capture1)
{
fprintf(stderr,"Fehler-> Keine Kamerasignale...\n");
getch();
return -1;
}
//Kamerasignale holen und Signalkontrolle
image = cvQueryFrame( capture );
image1 = cvQueryFrame( capture1);
if( !image || !image1)
{
fprintf(stderr,"Fehler-> Keine Frames verfügbar...\n");
getch();
return -1;
}
// Erstellung der Ausgabefenster
cvNamedWindow("Kamera1", 0);
cvMoveWindow("Kamera1", 0, 0);
cvResizeWindow("Kamera1", iBigWidth, iBigHeight);
cvNamedWindow("Kamera2", 0);
cvResizeWindow("Kamera2", iSmall, iSmall);
cvMoveWindow("Kamera2", iX, iY);
do
{
// Erstes Frame von den Kameras holen
image = cvQueryFrame(capture);
image1 = cvQueryFrame(capture1);
cvShowImage("Kamera1", image);
cvShowImage("Kamera2", image1);
if (iHelp!=1)//Fallunterscheidung von welcher Darstellung gewechselt wird
{
if (cvWaitKey(1)==115)//Wechselbedingung
{
cvResizeWindow("Kamera2", iBigWidth, iBigHeight);
cvMoveWindow("Kamera2", 0, 0);
cvResizeWindow("Kamera1", iSmall, iSmall);
cvMoveWindow("Kamera1", iX, iY);
cvShowImage("Kamera2", image1);
cvShowImage("Kamera1", image);
iHelp=1;
}
}
else
{
if (cvWaitKey(1)==115)//Wechselbedingung
{
cvResizeWindow("Kamera2", iSmall, iSmall);
cvMoveWindow("Kamera2", iX, iY);
cvMoveWindow("Kamera1", 0, 0);
cvResizeWindow("Kamera1", iBigWidth, iBigHeight);
cvShowImage("Kamera1", image);
cvShowImage("Kamera2", image1);
iHelp=0;
}
}
waitKeyReturnValue = cvWaitKey(1);
}while (waitKeyReturnValue != 27);// Programmende mit ESC- Tast
// Löschen der Fenster und der Signale
cvReleaseCapture(&capture);
cvReleaseCapture(&capture1);
cvDestroyAllWindows();
return 0;
}
int main(int argc, char** argv)
{
return mainLoop();
}
Soll die Bilder von zwei Stereofirewire- Kameras holen und in zwei getrennten Fenstern ausgeben. Habs mit zwei Webcams ausprobiert und es läuft.
Aber leider funktioniert es nicht mit den Stereokameras(Typ: Bumblebee2).
Es wird mir immer angezeigt, dass er keine Kamerasignale bekommt. Die Firewirecams funktionieren aber(hab ich getestet). Jemand ne Idee warum es mit den Webcams geht, aber nicht mit den Firewirecams?