opencv摄像头显示灰色

小弟最近在搞人脸识别的问题,做到从摄像头读入这儿,但是很奇怪,一开始代码运行摄像头成功显示,但是后来却先显示灰色。图片说明
代码我是直接从网上粘贴的:

 #include <cv.h>  
#include <cxcore.h>  
#include <highgui.h>  
#include<Windows.h>
int main()
{
    //声明IplImage指针  
    IplImage* pFrame = NULL;

    //获取摄像头  
    CvCapture* pCapture = cvCreateCameraCapture(0);

    //创建窗口  
    cvNamedWindow("video", 1);
    Sleep(200);
    //显示视屏  
    while (1)
    {
        pFrame = cvQueryFrame(pCapture);
        //if (!pFrame)break;
        cvShowImage("video", pFrame);
        char c = cvWaitKey(3);
        if (c == 27)break;
    }
    cvReleaseCapture(&pCapture);
    cvDestroyWindow("video");
}

2个回答

pFame 没有读到数据 ?
你把 //if (!pFrame)break; 注释去掉,看看。

sapalint
Swetchine1993 谢谢,问题应该是摄像头驱动的问题,重装了驱动问题解决了
3 年多之前 回复

#include
#include
#include
using namespace cv;
using namespace std;

int main()
{
char c;
VideoCapture inputVideo(1); //0为外部摄像头的ID,1为笔记本内置摄像头的ID
Mat src;
for (;;)
{
inputVideo >> src;
imshow("input", src);
c = waitKey(100);
if (c == 27) break;
}
return 0;
}
我有专门换了段摄像头显示的代码,结果直接报错:
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!