到目前为止,我正在使用我的acer水晶眼睛相机。它给了我确切的输出,但是当我开始使用我的罗技相机时,它只给了我一个黑色的窗口。
我的Logitech相机没有什么问题我用它来进行skyping,甚至我也尝试过在线镜像。
任何人都可以帮助我。这个问题有很多解决方案,但没有任何帮助。
#include <stdio.h>
#include <stdlib.h>
#include <cv.h>
#include <highgui.h>
int main(int argc, char** argv) {
CvCapture *video = cvCaptureFromCAM(1);
IplImage * img = NULL
if(!cvGrabFrame(video)){
printf("could not grab a frame\n");
exit(0);
}
cvNamedWindow("original_image",0);
while(1){
img = cvQueryFrame(video);
cvShowImage("original_image",img);
if (cvWaitKey(0)==27){
break;
}
cvReleaseImage(&img);
cvReleaseCapture(&video);
return (EXIT_SUCCESS);
}
答案 0 :(得分:4)
尝试使用if (cvWaitKey(30)==27)
而不是if (cvWaitKey(0)==27)
highgui需要一些时间来更新框架。
答案 1 :(得分:1)
你确定你的USB相机有索引1吗?
CvCapture *video = cvCaptureFromCAM(1);
您可以尝试在设备管理器中禁用acer网络摄像头(如果您使用的是Windows),然后将以上行替换为:
CvCapture *video = cvCaptureFromCAM(CV_CAP_ANY);
这样,您确保只启用了1个摄像头(USB摄像头),并使用CV_CAP_ANY确保使用了一个摄像头。如果这仍然给你一个黑/空白屏幕,你知道其他的错误。