小弟最近在搞人脸识别的问题,做到从摄像头读入这儿,但是很奇怪,一开始代码运行摄像头成功显示,但是后来却先显示灰色。
代码我是直接从网上粘贴的:
#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");
}
pFame 没有读到数据 ?
你把 //if (!pFrame)break; 注释去掉,看看。
#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;
}
我有专门换了段摄像头显示的代码,结果直接报错: