opencv调用摄像头函数 65

我使用了opencv的调用摄像头的函数,从摄像头捕获一帧图像并保存,运行之后,摄像头的灯都打开了,可是在显示的窗口中,却并没有看到这一帧图像,不知道为什么,求大神解释,怎... 我使用了opencv的调用摄像头的函数,从摄像头捕获一帧图像并保存,运行之后,摄像头的灯都打开了,可是在显示的窗口中,却并没有看到这一帧图像,不知道为什么,求大神解释,怎么解决这一问题?跪求!!
代码如下(变量定义什么的省略了):

capture=cvCreateCameraCapture(-1);//调用摄像头
cvQueryFrame(capture);//从摄像头捕获一帧图片并保存
cvNamedWindow("NewImage",1);
cvShowImage("OutImage",capture);
cvWaitKey(0);
展开
 我来答
qiu__peng
2013-08-22 · TA获得超过293个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:119万
展开全部
这句话有问题,cvShowImage("OutImage",capture);
IplImage* image = cvQueryFrame(capture); 这样才得到图片,要显示的应该是image。
cvShowImage("OutImage",image);

//////////////////////////////////////////////////////////////////////////////
这个是opencv的c接口,建议使用c++接口,简单得多。

cv::VideoCapture Camera(0);
if (!Camera.isOpened())
return -1;
while (cv::waitKey(33) != 27)
{
cv::Mat mat;
if (!Camera.read(mat))
break;
cv::imshow("video", mat);
}
Camera.release();
return 0;
丶PhantomCHC
2013-08-21 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:133万
展开全部
#include "opencv2/opencv.hpp"
int main()
{
//读取摄像头
//声明IplImage指针
IplImage* pFrame = NULL;
CvCapture* pCapture = NULL;
//窗口通过窗口名来标识
cvNamedWindow("video", CV_WINDOW_AUTOSIZE);

pCapture = cvCreateCameraCapture(CV_CAP_ANY);
cvWaitKey(0);
pFrame = cvQueryFrame( pCapture );

//while(pFrame = cvQueryFrame( pCapture ))
//{
// cvShowImage("video", pFrame);
// //延时 ,不然不会显示图像的,应该是扫描太快了
// cvWaitKey(33); //不然会因为太快导致显示还没完九需要去显示下一帧
//}
cvShowImage("video", pFrame);
cvWaitKey(0);
//释放图像
cvReleaseImage(&pFrame);
//销毁窗口
cvDestroyWindow("video");
//释放摄像设备
cvReleaseCapture(&pCapture);
return 0;
}
//网上粘的希望有用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天蝎星火燕
2018-04-07
知道答主
回答量:2
采纳率:0%
帮助的人:1712
展开全部
你把cvWaitKey(0)改为cvWaitKey(1)或者把括号里面的数改为10,100试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式