Visual c++ 错误:window7中opencv中的捕获为空
我在这里看到过其他类似于这个问题的帖子,甚至目瞪口呆,试图尝试各种可能的方法,但它们都不适合我。 下面的代码只是从网络摄像头无限地捕获图像,代码正在成功构建 获取错误“错误:捕获为空” Windows7是否支持opencv2.2.0,我在很多帖子中都提到在Windows7中使用DirectShow进行视频捕获Visual c++ 错误:window7中opencv中的捕获为空,visual-c++,opencv,webcam,c-api,Visual C++,Opencv,Webcam,C Api,我在这里看到过其他类似于这个问题的帖子,甚至目瞪口呆,试图尝试各种可能的方法,但它们都不适合我。 下面的代码只是从网络摄像头无限地捕获图像,代码正在成功构建 获取错误“错误:捕获为空” Windows7是否支持opencv2.2.0,我在很多帖子中都提到在Windows7中使用DirectShow进行视频捕获 #include<opencv/cxcore.h> #include<opencv/highgui.h> #include<opencv/cxcore.h&g
#include<opencv/cxcore.h>
#include<opencv/highgui.h>
#include<opencv/cxcore.h>
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char* argv[])
{
CvSize size640x480 = cvSize(640,480);
CvCapture* p_capWebcam;
IplImage* p_imgOriginal;
p_capWebcam=cvCaptureFromCAM(0);//i tried p_capWebcam=cvCaptureFromCAM(CV_CAP_ANY)
//i tried index from -1 to 10 but nothing worked
if(p_capWebcam==NULL)
{
printf("error:capture is NULL");
getchar();
return -1;
}
cvNamedWindow("Original",CV_WINDOW_AUTOSIZE);
while(1)
{
p_imgOriginal=cvQueryFrame(p_capWebcam);
if(p_imgOriginal=NULL)
{
printf("error :frame is NULL \n");
break;
}
cvWaitKey(10);
cvShowImage("Original",p_imgOriginal);
}
}
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
CvSize size640x480=CvSize(640480);
CvCapture*p_Cap网络摄像头;
IplImage*p_imgOriginal;
p_capWebcam=cvCaptureFromCAM(0);//我试过p_capWebcam=cvCaptureFromCAM(CV_CAP_ANY)
//我尝试了从-1到10的索引,但没有任何效果
如果(p_capWebcam==NULL)
{
printf(“错误:捕获为空”);
getchar();
返回-1;
}
cvNamedWindow(“原始”,CV_窗口_自动调整大小);
而(1)
{
p_imgOriginal=cvQueryFrame(p_capWebcam);
if(p_imgOriginal=NULL)
{
printf(“错误:帧为空\n”);
打破
}
cvWaitKey(10);
cvShowImage(“原件”,p_imgOriginal);
}
}
IDE是微软Visual C++ 2010 Express,
Webcamera(Frontech)usb2.0支持以下格式{'YUY2_160x120''YUY2_176x144''YUY2_320x240''YUY2_352x288''YUY2_640x480'}您缺少对cvWaitKey(10)的调用代码>在cvShowImage()之后(因此您的窗口不会得到更新)
和请移到C++ API,过时的C-API将不被长期支持。
所以,整个事情应该更像这样:#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/core.hpp"
using namespace cv;
int main()
{
VideoCapture cap(0);
while( cap.isOpened() )
{
Mat frame;
if ( ! cap.read(frame) )
break;
imshow("lalala",frame);
int k = waitKey(10);
if ( k==27 )
break;
}
return 0;
}
图像窗口现在正在响应,但背景仍然为灰色,未捕获图像