qt + opencv怎么调用opencv摄像头读取图像

一般来说用opencv调用摄像头是很方便的,但是当需要将画面显示在我们的GUI界面中则需要将格式转换下话不多说直接贴代码。

以下为打开摄像头部分的代码原理是利用QT中嘚QTimer,本次程序设定时间为每20ms结束时启动该函数需要在构造函数中将事件和定时器连接起来。

 
 
本次测试中加了个简单的sobel边缘提取的处理鉯下为测试结果图。

总结:Qt+OpenCV显示摄像头画面的核心还是在数据类型的转换和定时器的使用
}

可以使用 OpenCV 来操作摄像头不过 Qt5 已經自带了调用系统摄像头的功能,在 .pro 文件中增加下面的模块:

主要是使用下面 3 个类使用起来很方便:

 
 

QCameraImageCapture::capture() 用于捕捉摄像头的图像,完成后会发射信号 imageCaptured()可以在这个信号的槽函数中把捕捉到的图像显示给用户,如果满意的话就可以保存到文件或者上传到服务器等。capture() 接受一个参数為截图后图片保存的路径,如果使用默认的路径每次截图都会生成一个图片,如果想截图产生的图片都保存为一个固定的图片文件则傳入一个路径即可。

仔细的看一下可以发现 QImage::scaled() 缩放的图像和 QCameraViewfinder 上缩放的图像的效果不一样这是因为缩放的算法不同导致的,如果不满足需求可以使用更专业的图像缩放算法进行处理。

此外怎么判断是否启动了摄像头?文档里说:

}

我要回帖

更多关于 opencv摄像头读取图像 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信