OpenCV摄像头读取图像时第一次读取总失败的问题

开发平台是Qt5.21+OpneCV2.4.8,使用的是C++的接口,使用Camera.isOpened()打开摄像头成功,但是使用Camera.read()读取图像失败... 开发平台是Qt5.21+OpneCV2.4.8,使用的是C++的接口,使用Camera.isOpened()打开摄像头成功,但是使用Camera.read()读取图像失败,摄像头指示灯已经打开,反复调试后发现Camera.read()函数第一次调用的时候失败,第二次以后才成功。虽然我写程序时候可以调两次再开始显示图像。还是想问问各位大牛,为什么第一次会失败~!
cv::VideoCapture Camera(0);

if (!Camera.isOpened())

{

cout<<"camera is not opened!\n";

return -1;

}

else cout<<"camera is opened!\n";

cv::Mat img;

while (cv::waitKey(33) != 27)

{

bool isRead = false;

isRead = Camera.read(img);

if (!isRead)

{

cout<<"loading image!\n";

}

else cv::imshow("video", img);

}

Camera.releas
展开
 我来答
klaokai
推荐于2017-12-16 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:100%
帮助的人:18.3万
展开全部
我是刚开始学OpenCV的,我个人觉得是摄像头的响应问题;我同样的程序在笔记本上和在台式机上cv::VideoCapture Camera();的参数要求不一样才能正确显示图片,这可能是OpenCV读取视频的操作问题
更多追问追答
追问
笔记本上的Camera()的参数应该是多少呢 我现在是0
追答
我的是0,但是我没有出现你说的问题。你试一下去点击编译生成的exe文件运行,看看问题还存不存在。
wang1peng2rui3
2016-10-24 · TA获得超过378个赞
知道小有建树答主
回答量:102
采纳率:100%
帮助的人:39.6万
展开全部

我也遇到了这种情况,一般来说先读取第一帧,舍弃,然后就正常了。

大致如下

cap >> img;
cv::waitKey(100); //
    while (1){
if (cvWaitKey(5) == 27) break;

cap >> img;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式