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 谢谢,问题应该是摄像头驱动的问题,重装了驱动问题解决了
2 年多之前 回复
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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于OpenCV打开摄像头只显示灰色的三种解决办法
试了好多种方法都没有效果,然后不小心把if(!frame) break;注释掉了,结果可以了! 用一种图形处理算法,这里用的是cvCanny算法,虽然不知道什么原因,但是可以显示摄像头的内容 加头文件#include "cxcore.h"
关于opencv打开摄像头成灰色问题
代码: int main(int argc, const char** argv) { CvCapture* capture = 0; Mat frame, image; capture = cvCaptureFromCAM(-1); //capture = cvCaptureFromFile("1.avi"); cvNamedWindow("result", 1); Sleep(
Opencv调取图片与摄像头(灰屏问题解决)
笔者用的是VS2010 + OpenCV3.0beta。实现了本地图像显示与摄像头图像显示。中间遇到了调用内置摄像头灰屏的问题。希望对各位有参考价值。
opencv2.4.8在win7下无法打开摄像头,或者摄像头灰色图像的解决方案
opencv2.4.8 在win7下无法打开摄像头,或者摄像头灰色图像,我折腾了一晚上还没解决,其实很奇怪,这个是官方的例子,为什么会跑不出来呢?   后来看了下程序的逻辑,发现在打开摄像头的时候,程序马上会进入while循环,由于摄像头的启动要一定的时间,这时候自然没办法获取到第一帧,所以程序直接break了。我的解决方案是sleep一下。如果你的代码也是我的这个逻辑,估计都可以这样解决。代码
MFC 使用Opencv调用摄像头并显示画面,关闭摄像头显示一张本地图片
MFC 使用Opencv调用摄像头并显示画面,关闭摄像头显示一张本地图片,MFC 使用Opencv调用摄像头并显示画面,关闭摄像头显示一张本地图片,MFC 使用Opencv调用摄像头并显示画面,关闭摄像头显示一张本地图片
[opencv]MFC打开摄像头显示图像
1.创建基于对话框的MFC项目。 2.opencv的相关配置见http://blog.csdn.net/kingcooper/article/details/50769894
opencv人脸识别,摄像头调用,拍照以及图片灰值化,二值化
opencv人脸识别,摄像头调用,拍照以及图片灰值化,二值化
opencv 2.4.9 摄像头读取
摄像头读取并显示,视频形式
(VS2017+OPENCV3.3.1)摄像头小工具,每5分钟保存一帧画面
#include "stdafx.h" #include #include #include #include #include #include using namespace cv; using namespace std; //设定存储文件名 string file_name() { string suffix = ".png"; cha
python 使用OpenCV保存视频失败的解决方案及摄像头显示灰色的解决办法
1.视频保存失败,可能是电脑上没有装相应的解码工具。    方案1:将out = cv2.VideoWriter(name_text.get()+'.avi', fourcc, 20, (640, 480))中的第二个参数 fourcc换成-1,这样可以在运行的时候跳出来一个弹框,然后手动选择哪个可以使用,运气好的话第一个就可以用,不过也有都不能成功的情况   方案2:下载xvid 然后将fo