usb摄像头视频采集与qt界面显示

usb摄像头视频采集与qt界面显示

ID:12885458

大小:1.15 MB

页数:14页

时间:2018-07-19

usb摄像头视频采集与qt界面显示_第1页
usb摄像头视频采集与qt界面显示_第2页
usb摄像头视频采集与qt界面显示_第3页
usb摄像头视频采集与qt界面显示_第4页
usb摄像头视频采集与qt界面显示_第5页
资源描述:

《usb摄像头视频采集与qt界面显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、USB摄像头视频采集与Qt界面显示一.Qt界面制作1.新建Qt工程启动QtCreator,新建一个QtGui应用。单击File选择NewFileorProject出现以下界面:选择QtGuiApplication,之后选择好工程与路径名,其他默认,一直到设置Classinformation(类信息)时,Classname设为Widget,Basename选择QWidget,其他默认。设置好这些后,其他默认,直到工程设置结束。如下图所示:2.修改ui界面打开Widget.ui,进入可视化设计界面。默认情况中间的主设计区下只有一个Widget的对象。由于US

2、B摄像头采集到的图像需要显示到一个QLabel的部件上,从右侧的部件列表的“DisplayWidget”中选择“Label”部件拖动到中间;此外,我们需要两个按钮,一个用于启动和终止视频数据的保存,一个用于以后的视频文件的压缩。从右侧的”Buttons”中两次选择”PushButtion”部件并拖动到Widget中。从上图可以看出,对象Widget下已经添加了一个label部件,两个pushbutton部件。右上角Object与Class的关系是:Object对应的物体是属于Class对应的类,反映了Qt的继承关系。接下来设置上面四种部件的属性,Widg

3、et的属性按照下面图示设置,其中geometry设置为[(0,0),650*550]说明界面左上角的坐标位于原点,大小为650*550;在windowname这一项设置的是你的界面的名字,我设置为USB_YUV_Camera。注:图片未提及的采用默认就行,其他三个部件见图示。这些部件的objectName要特别注意,因为会在后面编写的程序中用到。(Widget设置图示)(label设置图示1)(label设置图示2)(Pushbutton1设置图示)(Pushbutton1设置图示)(Pushbutton2设置图示)Pushbutton2设置图示)最后生

4、成的界面:点击Debug会得到Debug文档,里面有你设置的信息。编译运行后,会在建立的工程文件夹下生成很多文件,重要的是widget.ui文件,其他的文件要根据你具体的应用作出相应的修改。Qt界面最终的效果图为:一.USB摄像头视频采集与Qt界面显示源代码分析源码包含:common.hVideoDevice.hwidget.hVideoDevice.cppwidget.cppmain.cppcommon.h主要定义了USB采集到的图像的宽度,高度等信息;Videodevice.h定义了VideoDevice类,使它继承于Qt的基类QObject,定义了

5、VideoDevice的构造函数与析构函数,重要的是定义了实现V4L2视频架构的函数;Videodevice.cpp具体实现了Videodevice.h定义的函数,完成了基于V4L2架构的视频采集;widget.h定义了Widget窗口类,使它继承于Qt窗口类QWidget,并定义了YUV到RGB颜色转变的函数;QT界面按钮操作的实现函数,以及视频窗口的刷新时间painEvent函数;widget.cpp实现了widget.h定义的函数。下面介绍各文件的主要代码段:(1)common.h#ifndefCOMMON_H#defineCOMMON_H//……

6、#defineIMG_WIDTH640//定义视频的宽度为640#defineIMG_HEIGTH480//定义视频的高度为480#endif//COMMON_H(2)Videodevice.h#defineCLEAR(x)memset(&(x),0,sizeof(x))//定义CLEAR为内存清零classVideoDevice:publicQObject{Q_OBJECT//有了这条语句才能使用QT中的signal和slot机制public:VideoDevice(QStringdev_name);//构造函数定义,用于初始化~VideoDevice

7、();//析构函数用于释放内存intget_frame(unsignedchar**yuv_buffer_pointer,size_t*len);//获取视频帧intunget_frame();//释放视频帧,让出缓存空间准备新的视频帧数据private:intopen_device();//打开设备intinit_device();//初始化设备intstart_capturing();//启动视频采集intinit_mmap();//内存映射初始化intstop_capturing();//停止视频采集intuninit_device();//注销设

8、备intclose_device();//关闭设备structbuffer{vo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。