可以使用 OpenCV 来操作摄像头不过 Qt5 已經自带了调用系统摄像头的功能,在 .pro
文件中增加下面的模块:
主要是使用下面 3 个类使用起来很方便:
|
|
QCameraImageCapture::capture() 用于捕捉摄像头的图像,完成后会发射信号 imageCaptured()可以在这个信号的槽函数中把捕捉到的图像显示给用户,如果满意的话就可以保存到文件或者上传到服务器等。capture() 接受一个参数為截图后图片保存的路径,如果使用默认的路径每次截图都会生成一个图片,如果想截图产生的图片都保存为一个固定的图片文件则傳入一个路径即可。
仔细的看一下可以发现 QImage::scaled() 缩放的图像和 QCameraViewfinder 上缩放的图像的效果不一样这是因为缩放的算法不同导致的,如果不满足需求可以使用更专业的图像缩放算法进行处理。
此外怎么判断是否启动了摄像头?文档里说: