1 / 18
文档名称:

USB摄像头视频采集与QT界面显示.doc

格式:doc   大小:1,171KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

USB摄像头视频采集与QT界面显示.doc

上传人:小枷 2019/10/25 文件大小:1.14 MB

下载得到文件列表

USB摄像头视频采集与QT界面显示.doc

相关文档

文档介绍

文档介绍:USB摄像头视频采集与Qt界面显示Qt界面制作新建Qt工程启动QtCreator,新建一个QtGui应用。单击File选择NewFileorProject出现以下界面:选择QtGuiApplication,之后选择好工程与路径名,其他默认,一直到设置Classinformation(类信息)时,Classname设为Widget,Basename选择QWidget,其他默认。设置好这些后,其他默认,直到工程设置结束。如下图所示:,进入可视化设计界面。默认情况中间的主设计区下只有一个Widget的对象。由于USB摄像头采集到的图像需要显示到一个QLabel的部件上,从右侧的部件列表的“DisplayWidget”中选择“Label”部件拖动到中间;此外,我们需要两个按钮,一个用于启动和终止视频数据的保存,一个用于以后的视频文件的压缩。从右侧的”Buttons”中两次选择”PushButtion”部件并拖动到Widget中。 从上图可以看出,对象Widget下已经添加了一个label部件,两个pushbutton部件。右上角Object与Class的关系是:Object对应的物体是属于Class对应的类,反映了Qt的继承关系。接下来设置上面四种部件的属性,Widget的属性按照下面图示设置,其中geometry设置为[(0,0),650*550]说明界面左上角的坐标位于原点,大小为650*550;在windowname这一项设置的是你的界面的名字,我设置为USB_YUV_Camera。注:图片未提及的采用默认就行,其他三个部件见图示。这些部件的objectName要特别注意,因为会在后面编写的程序中用到。(Widget设置图示)(label设置图示1)(label设置图示2)(Pushbutton1设置图示)(Pushbutton1设置图示)(Pushbutton2设置图示)Pushbutton2设置图示)最后生成的界面:点击Debug会得到Debug文档,里面有你设置的信息。编译运行后,会在建立的工程文件夹下生成很多文件,,其他的文件要根据你具体的应用作出相应的修改。Qt界面最终的效果图为:,高度等信息;,使它继承于Qt的基类QObject,定义了VideoDevice的构造函数与析构函数,重要的是定义了实现V4L2视频架构的函数;,完成了基于V4L2架构的视频采集;,使它继承于Qt窗口类QWidget,并定义了YUV到RGB颜色转变的函数;QT界面按钮操作的实现函数,以及视频窗口的刷新时间painEvent函数;。下面介绍各文件的主要代码段:(#MON_H#MON_H//……#defineIMG_WIDTH640//定义视频的宽度为640#defineIMG_HEIGTH480//定义视频的高度为480#endif//COMMON_H(2)#defineCLEAR(x)memset(&(x),0,sizeof(x))//定义CLEAR为内存清零classVideoDevice:publicQObject{Q_OBJECT//有了这条语句才能使用QT中的signal和slot机制public:VideoDevice(QStringdev_name);//构造函数定义,用于初始化~VideoDevice();//析构函数用于释放内存intget_frame(unsignedchar**yuv_buffer_pointer,size_t*len);//获取视频帧intunget_frame();//释放视频帧,让出缓存空间准备新的视频帧数据private:intopen_device();//打开设备intinit_device();//初始化设备intstart_capturing();//启动视频采集intinit_mmap();//内存映射初始化intstop_capturing();//停止视频采集intuninit_device();//注销设备intclose_device();//关闭设备structbuffer{void*start;//视频缓冲区的起始地址size_tlength;//缓冲区的长度};QStringdev_name;intf