基于Qt视频监控系统(百度地图,屏幕分割,双击放大,视频录制回放)上篇

  1. 项目简介

本项目是通过Qt及OpenCV库,实现功能包括调取摄像头、录制并保存视频及播放录像的监控系统。再在监控系统中加入百度地图,实现地图操控开关摄像头。

  1. 项目内容

  1. 摄像头的开启关闭:

该功能主要使用到三个对象,分别为Mat ; VideoCapture; VideoWriter。Mat类,即OpenCV用于存储图像的矩阵类,其每一个元素都代表一个像素,会储存图像的基本信息。将该信息显示在Qlabel上,VideoCapture类用于提供打开视频捕捉设备、视频文件及网络视频的接口。VideoWriter提供录制视频的接口。

Open(0)中0代表本机的摄像头,打开它,同时打开定时器,定时器通过每隔一段时间发送信号去调用ReadFrame,一帧一帧的把图像信息显示在Qlabel上,连续起来实现动态图像。

ReadFrame函数中有ui->label->setPixmap(QPixmap::fromImage(MatToImage(frame)));

setPixmap()为QLabel下显示图片的函数,QPixmap::fromImage则将QImage类型转换为在屏幕上显示的QPixmap类型。

MatToImage通过channels判断Mat的通道数,将Mat转换为Qt可识别的QImage类型。

再显示在Qlabel上。

  1. 视频画面双击放大:

由于Qlabel控件的信号与槽是没有双击的。当我们想使用双击时应该怎么做?

这里就要讲到控件的提升。在提升状态下,可以给控件自定义信号与槽。

首先我们要新建一个类,且要继承于Qlabel。

自定义信号为doubleClied(),槽函数也可以自定义,但我这里重写了双击事件。

然后再在事件中发送信号。这样类就写好了。

最好在打开ui->拖入一个普通的QLabel->点击右键提升为,如下图:

在类名称这里填入刚刚新建类的名称,在上方勾选新建的类,调用该类。提升过后才会出现改变改变信号/槽的选项。在ui设计界面右击label控件->改变信号/槽->在信号栏添加刚刚的自定义信号。

这时在ui设计界面右击label->转到槽->就可以看到我们自定义doubleClicked()信号。

像这种自定义槽的方法和系统转到槽一样,已经连接过了,不用再使用connect进行信号与槽的连接,可以直接使用。这就完成了自定义信号与槽。这时我们在软件上双击label就可以实现槽函数中的功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值