4

对,我有一个连接到 PC 的 USB 摄像头,我想使用 OpenCV 从中流式传输图像。这是我的代码:

#include <cv.h>
#include <highgui.h>
#include <stdio.h>

int main()
{

    CvCapture* cameraCapture = cvCaptureFromCAM(CV_CAP_ANY);
    cvNamedWindow("Camera");

    while(1)
    {
        IplImage* frame = cvQueryFrame(cameraCapture);
        cvShowImage("Camera", frame);
        if((cvWaitKey(10) & 255) == 27)
            break;
    }

    cvReleaseCapture(&cameraCapture);
    cvDestroyWindow("Camera");
}

问题是,当我启动程序时,我收到此弹出错误:“应用程序无法正确启动(0xc0150002)。单击确定关闭应用程序”。我已经确定我已经包含了所有正确的库、头文件和 ddl,所以我真的不确定它有什么问题。

任何解决此问题的帮助将不胜感激。

4

1 回答 1

4

我建议您使用 OpenCV 2.3.1 尝试这种处理相机的方式。

VideoCapture _videoSource;
bool camera = 1;

if(camera)
{
   if(!_videoSource.open(0))                // Try to start camera. 0 = default camera
   {                                    
    cout << "Error opening camera" << endl; // here you control why the error happens
    exit(1);                // Exit if fail         
   }
}
else
{
   if(!_videoSource.open(Path+"video.avi")) 
   {
        cout << "Error opening file" << endl;
        exit(2);                        // Exit if fail
   }
}
_videoSource.set(CV_CAP_PROP_CONVERT_RGB, 1);

Mat frame;
namedWindow("Image");

while(1) 
{
  _videoSource >> frame; 
  imshow("output", frame);
  return 0;
}

如果失败,您将确定问题出在您的相机上。也许是司机。祝你好运。

于 2012-05-30T07:31:23.460 回答