(Qt+opencv)操作摄像头实现显示、截图、保存功能(双线程、带源码)

一年前有个项目,本打算用Qt+opencv+多线程来操作相机,苦于技术不到家,只好用QCamera来操作摄像头(QCamera提供的相机操作方法很局限,甚至无法直接获取每一帧图像)。一年后的今天,我又想起这回事,专门抽时间把这段代码写了出来,也算有始有终了~

环境:win10 + Qt5.9.0(编译器为MSVC2015-32bit) + opencv4.1.1(编译器为MSVC2015-32bit)
Qt+opencv环境配置的基本思路是:
1.安装Qt(推荐5.9.0-win32版本)。
2.从opencv官网下载合适Qt版本的opencv(推荐opencv4.1.1)。
3.使用cmake对opencv进行编译(也可以下载网上编译好的),编译时选择的编译器要和Qt的编译器一致。
4.环境变量的配置。
5.在Qt工程中导入opencv的库文件路径。

涉及的主要技术:
1.opencv相机基本操作。
2.Mat格式和QImage格式的互相转化。
3.Camera类的设计。
4.Qt多线程技术(利用QObejct::moveToThread(QThread* )实现)。

先看效果图:
在这里插入图片描述

整个工程共七个文件(mainwindow.ui文件很简单,不予展示):
在这里插入图片描述

1.Test.pro

#-------------------------------------------------
#
# Project created by QtCreator 2020-02-08T13:35:16
#
#-------------------------------------------------
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Test
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
        main.cpp \
        mainwindow.cpp \
        camera.cpp
HEADERS += \
        mainwindow.h \
        camera.h
FORMS += \
        mainwindow.ui
include(d:\opencv411\opencv-4.1.1\build\install\opencv.pri)
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值