【Windows系统QT5.9.8平台+OPENCV3.4.3+视频采集+录制+截图】开发实例教程

【Windows系统QT5.9.8平台+OPENCV3.4.3+视频采集+录制+截图】开发实例教程202108

【软件开发】

      本系统开发采用了QT编程技术,OPENCV技术,多线程技术实现的视频监控和录制系统。主要包括视频数据的采集,视频录制和截图保存等功能。

(1)环境搭建

下载并安装QT5.9.8:https://mp.csdn.net/mp_blog/creation/editor/114658093

下载安装opencv3.4.3:https://mp.csdn.net/mp_blog/creation/editor/119024635

(2)新建工程

(3)在工程中配置opencv链接库

(4)界面布局

(5)结果展示

左边是视频显示区域,右边是截图后显示的照片;

【OPENCV相关知识】

【01读写类文件的使用】

在编写函数之前,对用到OpenCV中的类稍作介绍: 像对其他硬件操作一样,要想调用系统中的摄像头,无非就两个操作一个读,一个写,那么OpenCV这个开源库就为我们对摄像头的读写操作编写了两个类。

VideoCapture 用于视频的读操作(这里的读包括两个方面,一个是对摄像头画面的读取,另一个是对视频文件帧的读取)

VideoWriter 用于视频的写操作(主要用于将获取的画面以帧的形式写入视频文件中,实现视频的保存)

另外,在从获取视频的帧,到画面的显示,这个过程中画面 都是以矩阵的形式进行传递与转换,这就用到了另外一个类 Mat

可以说,从一开始加载图片,到我们最终实现多线程调用摄像头、保存、回放视频,都是这三个类中相关函数的作用。

【02视频编码格式】

【03需要使用的动态链接库】

录像保存:需要用到opencv_ffmpeg.dll

保存视频的效果图:

2 在项目文件中完成OPENCV的配置,加载

下载opencv3.4.3,然后完成opencv的配置

下载地址:

CONFIG += c++11

SOURCES += \

        main.cpp \

        mainwindow.cpp \

    thread_record.cpp

HEADERS += \

        mainwindow.h \

    thread_record.h

FORMS += \

        mainwindow.ui

INCLUDEPATH += D:/opencv3.4.3/include \

               D:/opencv3.4.3/include/opencv \

               D:/opencv3.4.3/include/opencv2

#               D:/opencv3.4.3/include/opencv2/video/video.hpp\

#               D:/opencv3.4.3/include/opencv2/core/mat.hpp

LIBS += D:/opencv3.4.3/x64/vc14/lib/opencv_*\

常见问题及解决方法:

【问题描述1】:

在Release模式下,运行Camera程序,点击打开摄像头,无问题,打开开始录制,程序执行一段时间后退出;报错如下:

OpenCV: terminate handler is called! The last OpenCV error is:

OpenCV(3.4.3) Error: Assertion failed (videoSample) in SourceReaderCB::Wait, file c:\build\3_4_winpack-build-win64-vc15\opencv\modules\videoio\src\cap_msmf.cpp, line 1079

09:57:55: 程序异常结束。

问题分析:可能是cap_msmf.cpp导致程序出错;

解决方法:cap.opencv (0,::CAP_DSHOW);

【问题描述2】

Camera视频录制的时候有文件生成,但内存为0KB

 解决方法:参考链接:https://blog.csdn.net/weixin_42984932/article/details/108078295

 

【问题描述】Camera 视频录制有文件生成,但只有6kb ,而且程序无法打开。

问题分析:经过调试发现,6kB 是因为视频流没有真正写入进来,经过查阅资料,发现没有写读取视频流的代码:在录制视频程序中加入这行代码问题解决。

初始化时使用的帧大小和写入文件帧大小应该相同。

【问题描述3】

可以录制一定时长的程序,但是程序运行一段时间后报错:

后将模式由Debug模式改为Release模式,

【问题描述4】

 视频录制完成后,进行播放是快进式播放,经过查阅资料可能是release模式

截图功能实现的过程

程序源码:https://download.csdn.net/download/gl1037645565/21495972

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值