Qt视频采集程序课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书

课程名称嵌入式系统

课题 Qt视频采集程序

专业班级计算机

学生姓名

学号 27 指导老师郭鹏刘铁武李杰君

任务书下达日期 2012年9 月 3 日

任务完成日期2012年9 月8 日

嵌入式系统课程设计任务书

设计课题7:Qt视频采集程序

1、问题描述:

智能家居系统中,ARM平台可通过USB摄像头进行视频数据的采集,以满足家庭安防报警的要求。友好界面的视频采集程序可对摄像头信息进行实时采集,并向用户手机发送预警信息。本课题要求在Qt程序中嵌入Opencv计算机视觉类库。

2、功能设计要求:

1)本系统运用Qt creator集成开发环境进行友好的GUI设计,并通过信号和槽接口嵌入底层opencv视频采集程序。

2)opencv类库编译:

Opencv源码包的解压和配置

Opencv的编译和安装

3)GUI界面模块:

Qt creator设计良好的人机界面

界面实现摄像头的打开、视频帧的抓取、保存功能

3、要求:

1)安装Qt creator;

2)对Qt源码和视频采集程序的核心部分加必要注释和说明;

3)程序能运行;

目录

一、系统介绍 (1)

二、总体设计 (1)

2.1程序模块 (1)

2.2.函数分析 (1)

2.3.总体结构 (1)

三.主要模块的实现 (2)

四.程序调试 (2)

五.总结与体会 (3)

六.源程序清单 (4)

一、系统介绍

本系统运用Qt creator集成开发环境进行友好的GUI设计,并通过信号和槽接口嵌入底层opencv视频采集程序。通过信号(signal)和卡槽(slot)对USB摄像头进行识别和操作来采集视频数据。

二、总体设计

2.1程序模块

程序只有两个模块,就是采集界面和摄像头操作。

2.2.函数分析

程序包括几个功能函数:1、摄像头打开函数openCamera(),识别并打开摄像头。2、摄像头信息读取函数readFrame(),从摄像头中抓取帧,转换为QImage 格式,并显示到界面上。3、摄像头关闭函数closeCamera(),关闭摄像头,释放资源。4、视频数据转换函数bgr24_bgr32(),申请缓冲空间,将视频数据转换为合适的像素大小的适用界面的格式。

2.3.总体结构

三.主要模块的实现

在open按钮上建立signal和slot来识别USB摄像头,如果检测到摄像头将开启摄像头,并读取其信息,将视频数据进行格式转换,然后将转换成QImage 格式的视频数据显示到label控件上,从而显示出视频内容。在closeCam按钮上建立信号关闭摄像头并用opencv中的cvReleaseCapture函数释放内存。

四.程序调试

五.总结与体会

对于Qt来说我已经不陌生啦,经过上半年一学期的Qt界面编程,我已经可以独立完成一些不大复杂的程序。对于这次课程设计其实程序十分简单,只是要嵌入opencv这个陌生的程序包,所以比较复杂。之前都是运用自带的程序包,在Qt中嵌入其它程序包对我来说还是第一次,新手上路就会遇到问题,我在网上查了安装方法,但是有部分是错误的,导致后面编译能通过,却运行不了。经过一步步的排查才发现是安装错啦,重新安装后才解决了问题。还有一个问题,就是视频转换这部分,参考了资料才知道要将视频数据转换成QImage格式才可以显示在界面上,不然系统就会报错。

六.源程序清单

头文件cameraget.h

#ifndef CAMERAGET_H

#define CAMERAGET_H

#include

#include

#include//设置采集数据的间隔时间

#include

#include//包含opencv库头文件

#include

namespace Ui{

class cameraGet;

}

class cameraGet:public QWidget

{

Q_OBJECT

public:

explicit cameraGet(QWidget*parent=0);

~cameraGet();

char*bgr24_bgr32(int width,int height,char*src);

private slots:

void openCamera();//打开摄像头

void readFrame();//读取当前帧信息

void closeCamera();//关闭摄像头。

private:

Ui::cameraGet*ui;

bool initCamera;

QTimer*timer;

CvCapture*cam;//视频获取结构,用来作为视频获取函数的一个参数IplImage*frame;//申请IplImage类型指针,就是申请内存空间来存放每一帧图像

};

#endif//CAMERAGET_H

source文件cameraget.cpp

#include"cameraget.h"

#include"ui_cameraget.h"

cameraGet::cameraGet(QWidget*parent):

QWidget(parent),

相关文档
最新文档