【发布时间】:2012-07-13 06:22:57
【问题描述】:
我对我的简单问题进行了很多搜索,但没有找到解决方案。当我运行我的代码黑色控制台向我显示相机帧大小但在窗口中视频未显示时,它显示一个纯灰色屏幕。但是,如果我从 HDD 播放视频,则它可以正常工作。 请帮我一个。 这是我的代码
#include <iostream>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
using namespace std;
int main(int argc, char** argv){
CvCapture *capture;
IplImage* img=0;
cvNamedWindow("Window");
capture = cvCreateCameraCapture( -1);
//capture = cvCaptureFromAVI("1.mp4");
//capture = cvCaptureFromCAM(-1);
int ext=0;
assert( capture );
if(capture==NULL){
cout<<"Cam Not Found!!!"<<endl;
getchar();
return -5;
}
while ( true ){
img = cvQueryFrame( capture );
cvSaveImage("1.jpg",img);
if (!img){
printf("Image not Found\n");
break;
}
cvShowImage("Window", img);
cvWaitKey(50);
}
cvReleaseImage(&img);
cvDestroyWindow("Window");
cvReleaseCapture(&capture);
return 0;
}
我使用 opencv 2.2 和 Visual Studio 2010
【问题讨论】:
-
黑屏输出是什么?在 'if(!capture)' 的输出下方插入一个 getchar() 方法,并在黑屏上检查输出。
-
我这样做了,但还是一样。
-
黑屏输出?没有?你有网络摄像头吗?
-
在黑框中显示消息“相机帧大小:640 x 480 像素”。网络摄像头:Hp ProBook 4430s 固定摄像头。操作系统:Win 7(32位)
-
你应该交换
cv::waitKey(20)和cvShowImage("Window", img)。 “Size of camera frame...”是否打印了多次?
标签: c++ windows visual-studio-2010 opencv