2 sapalint sapalint 于 2016.03.22 13:06 提问

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个回答

Relocy
Relocy   2016.03.28 18:17

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

sapalint
sapalint 谢谢,问题应该是摄像头驱动的问题,重装了驱动问题解决了
一年多之前 回复
sapalint
sapalint   2016.04.07 23:12

#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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!