关于opencv3.0调用相机的问题(读取图像一闪而过/waitKey(0)函数问题)

概述:
遇到的问题
1.调用一个外接USB相机,运行没问题,但显示界面是灰色;
2.读取一张图像出现1)先是显示灰色2)后面一闪而过;

解决思路

1.摄像头调用有问题就先尝试调用一种图
出现问题2
解决:1.在main()函数内结尾加上:

	waitKey(0);
	destroyAllWindows();
	return 0;
	效果:不显示灰度,但一闪而过;
	2.考虑是否要创建Windows窗口(namedWindow())
	namedWindow("初始图像", CV_WINDOW_NORMAL);
	imshow("初始图像", test);
	waitKey(0);
	destroyAllWindows();
	return 0;
	效果:显示图像,但出现:test-opencv.exe 已触发了一个断点。
	(好像关掉imshow()窗口和.exe窗口的先后顺序引起的)
	附:[WaitKey()函数理解](https://blog.csdn.net/qq_32211827/article/details/55657146)

解决问题!
完整代码

// test-opencv.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

char outputiamge[]="初始图象";
int main(int argc, char** argv)
{
	VideoCapture cap(0);
	namedWindow(outputiamge, CV_WINDOW_NORMAL);
	Mat image;
	if (!cap.isOpened())
	{
		cout << "open camera failed" << endl;
		return -1;
	}
	while (1)
	{
			cap >> image;//cap.read(image);
			imshow(outputiamge, image);
			waitKey(20);
			if (waitKey(20) > 0) break;
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w5875895

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值