2013-10-17 3 views
0

Quelle fonction d'OpenCV prend en charge la caméra analogique pour la diffusion en direct?Quelle fonction d'OpenCV prend en charge la caméra analogique pour la diffusion en direct?

S'il vous plaît donnez-moi la réponse.

J'ai essayé les fonctions CvCapture et VideoCapture d'OpenCV. Fonctionne avec une caméra USB mais ne fonctionne pas avec une caméra analogique.

J'ai essayé la fonction VideoInput.Il fonctionne bien avec une caméra analogique, mais je veux une fonction intégrée. Alors s'il vous plaît aidez-moi. Merci pour votre temps.

C'est le code pour la fonction cvcapture que j'ai utilisé.

#include "stdafx.h" 
#include "cv.h" 
#include "cxcore.h" 
#include "highgui.h" 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <iostream> 
#include "videoInput.h" 
#include <opencv2/imgproc/imgproc.hpp> 

using namespace cv; 
using namespace std; 

char key; 
int main() 
{ 
    cvNamedWindow("Camera_Output", 1); //Create window 
    CvCapture* capture = cvCaptureFromCAM(CV_CAP_ANY); //Capture using any camera    connected to your system 
    while(1){ //Create infinte loop for live streaming 

     IplImage* frame = cvQueryFrame(capture); //Create image frames from capture 
     cvShowImage("Camera_Output", frame); //Show image frames on created window 
     key = cvWaitKey(10);  //Capture Keyboard stroke 
     if (char(key) == 27){ 
      break;  //If you hit ESC key loop will break. 
     } 
    } 
    cvReleaseCapture(&capture); //Release capture. 
    cvDestroyWindow("Camera_Output"); //Destroy Window 
    return 0; 
} 

fin du code

Code suivant utilise VIDEOINPUT fonction.

Le code est

#include "stdafx.h" 
#include "cv.h" 
#include "cxcore.h" 
#include "highgui.h" 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <iostream> 
#include "videoInput.h" 
#include <opencv2/imgproc/imgproc.hpp> 

using namespace cv; 
using namespace std; 

int main(int, char**) 
{ 
    videoInput VI; 
    int numDevices = VI.listDevices(); 
    //int device1= 0; 
    VI.setup(0); 

    unsigned char* yourBuffer = new unsigned char[VI.getSize(0)]; 

    IplImage* colourImage = cvCreateImage(cvSize(320,240),8,3); 

    while(1) 
    { 
     VI.grabFrame(0, yourBuffer); 
     colourImage->imageData = (char*)yourBuffer; 
     cvConvertImage(colourImage, colourImage, 3); 

     cvShowImage("test",colourImage); 

     if(cvWaitKey(10) == 27) 
      break; 
    } 
    return 0; 
} 

fin du code

et dernier code utilise la fonction videocapture

le code est

#include "stdafx.h" 
#include "cv.h" 
#include "cxcore.h" 
#include "highgui.h" 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <iostream> 
#include "videoInput.h" 
#include <opencv2/imgproc/imgproc.hpp> 

using namespace cv; 
using namespace std; 

int main() { 
VideoCapture stream1(-1); //0 is the id of video device.0 if you have only one camera. 

    if (!stream1.isOpened()) { //check if video device has been initialised 
     cout << "cannot open camera"; 
     return 0; 
    } 

//unconditional loop 
    while (true) { 
     Mat cameraFrame; 
     stream1.read(cameraFrame); 
     imshow("cam", cameraFrame); 
     if (waitKey(30) >= 0) 
     break; 
    } 
    return 0; 
} 

fin du code

S'il vous plaît aidez-moi.

+0

S'il vous plaît partager 1) Comment votre sortie de la caméra analogique est d'entrer dans votre ordinateur 2) Le code VIDEOINPUT qui fonctionne et 3) Un exemple de ce que vous avez essayé avec OpenCV qui tente de faire ce que vous voulez. – KobeJohn

+0

En fait videoInput fonctionne bien avec une caméra analogique mais je veux utiliser Qt avec C++ pour l'interface graphique et j'ai donc eu l'erreur après avoir inclus le fichier videoInput.lib dans mon projet qt, c'est pourquoi je recherche la fonction intégrée d'OpenCV. Merci pour votre réponse. – user2865434

+0

Bonne mise à jour. J'utilise opencv en python, donc je n'ai pas essayé votre code. Veuillez expliquer ce qui ne fonctionne pas dans les deux exemples OpenCV. – KobeJohn

Répondre

Questions connexes