首页 > 经典文章 > 经典美文 > labview高级程序设计

labview高级程序设计

时间:2018-07-31   来源:经典美文   点击:

【www.gbppp.com--经典美文】

labview高级程序设计 第一篇_基于LabVIEW和API的实时视频处理

基于LabVIEW和API的实时视频捕捉

陈希球 田有成 12

(长江工程职业技术学院,武汉 430212 )

(长江中游水文水资源勘测局,武汉 430010

摘 要:工业现场控制经常要对实时视频图象进行分析处理,labVIEW尽管提供了Vision工具,但需要相应的硬件与设备驱动。本文通过调用库函数节点,实现了操作系统底层视频处理功能。具有快速、高效的特点。

关键词:LabVIEW;API;视频捕捉

中图分类号:TP3-5 文献标识码:A 文章分类号

0 引言

美国国家仪器公司(National Instruments)的软件产品labVIEW,以图形化编程模式更显直观高效,同时又不泛灵活性。其应用范围覆盖工业自动化、测试测量、嵌入式应用、运动控制、图象处理、计算机仿真等众多领域。在图象处理方面,提供了极其丰富的图象处理与算法分析函数,易于用户构建图象处理系统,缩短了系统开发周期。由于NI公司提供的图像采集卡价格不菲,构建应用系统时,硬件采用通用图像采集卡,再利用labVIEW强大的软件资源,不失为明智之举,既节省成本,又方便软件设计。

【labview高级程序设计,】

1 调用库节点与相关AIP

1.1 调用库节点

labVIEW的互联接口函数面板中提供了调用库函数节点(CLN),利用CLN可以调用DLL和API函数。在使用CLN节点时,需要利用对话框配置调用环境,包括指定DLL或API对应文件的路径,调用规范应选用stdcall(WINAPI),在线程选项中应选择“在UI线程中运行”选项。不同函数它的参数个数和参数数据类型都不尽相同,在配置时要按函数的要求增加相应参数并选择对应的数据类型,在选择数据类型时要注意labVIEW中的数据类型与C语言的对应关系。

1.2 与视频处理相关API

Window提供了实时音视频处理动态链接库avicap32.DLL,可以创建捕捉窗口,并通过向窗口发送消息实现视频捕捉。其相关函数和消息说明如下:

HWND VFWAPI capCreateCaptureWindow( LPCTSTR lpszWindowName,

DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWnd, int nID)

capCreateCaptureWindow为建立捕捉窗口,参数分别为新建窗口标题、窗口风格、窗口相对地父窗口的坐标、窗台的宽度和高度、父窗口句柄和窗口ID。如果窗口建立成功,则返回捕捉窗口句柄。

LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)函数将指定的消息发送到一个或多个窗口。参数hWnd为接收消息的窗口的句柄,Msg为指定被发送的消息,wParam和IParam指定附加的消息特定信息。主要与视频捕捉有关的消息

1.WM_CAP_SET_PREⅥEW ,设置预览模式

2.WM_CAP_SET_OVERLAY ,设置覆盖

3.WM_CAP_SET_PREⅥEWRATE ,设置采样帧速率

4.WM_CAP_GRAB_FRame ,捕捉单帧作为静止图象

5.WM_CAP_DRIVER_CONNECT ,连接摄像机

6.WM_CAP_DRIVER_DISCONNECT, 断开摄像机

HWND FindWindow (LPCSTR lpClassName,LPCSTR lpWindowName)函数为查找指定程序的窗口句柄,本应用中主要用来查找前面板的窗口句柄。参数lpClassName为指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子,lpWindowName为指定窗口标题的字符串。

2 labVIEW环境下视频捕捉实现

labVIEW的主流编程模式为数据流驱动模式,根据视频捕捉的实际应用,软件设计采用事件驱动模式来实现,前面板设计连接摄像机、断开摄像机、单帧捕捉三个按钮,用户通过点击相应的按钮实现其对应功能。连接摄像机按钮对应程序流程图如图1所示。

【labview高级程序设计,】

图1 连接摄像机按钮事件流程图

对应labVIEW程序如图2所示。如果用户的labVIEW环境支持私有属性节点,也可通过对windows剪切板操作捕捉图象的复制与粘贴,从而可简化程序设计。图3为程序运行效果图。

图2 连接摄像机按钮事件labVIEW程序图。

图3 视频捕捉程序前面板图

其它两个按扭的程序设计与连接摄像机按扭类似。程序中要建立共享变量将视频窗口句柄在不同事件结构中传递,以实现对同一窗口的消息发送。 3 结束语

labVIEW具有丰富的函数资源,同时提供了多种与外部程序的接口,使用labVIEW环境开发应用程序可以简化算法设计,起到事半功倍的效果。本视频捕捉程序在labVIEW2012和windows8环境调试通过。【labview高级程序设计,】

参考文献:

[1] 陈树学.刘萱.LABVIEW宝典[M],北京,电子工业出版社,2012

[2] 杨乐平.LABVIEW高级程序设计[M],北京,清华大学出版社,2007

Real-time video capture based on LabVIEW and API

Chen xi qiu

The real-time video image analysis and processing of field control industry, labVIEW although provides a Vision tool, but need the hardware and corresponding device driver. In this paper, by calling the library function node, realized the function of the underlying video processing operating system. Has the characteristics of fast, efficient.

作者简介:陈希球,(1962-),男,湖北崇阳人,教授,硕士,主要从事电子信息教学与研究工作。

labview高级程序设计 第二篇_labview入门教程

Labview 7.1 入门教程

第一讲:认识Labview

1.1 Labview 简介

在开始菜单里找见NI Labview7.1 点击打开,会出现如下界面:

从File>>New VI 或者从右半部分中的New>>Blank VI 都可以打开如下界面:【labview高级程序设计,】

上图中前图是虚拟仪器的前面板,是用户使用的人机界面,后面的是程序框图界面(即后面板)。

在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函数(Functions)模板。这些模板集中反映了该软件的功能与特征。下面我们来大致浏览一下。

工具模板(Tools Palette)

该模板提供了各种用于创建、修改和调试VI程序的工具。

如果该模板没有出现,则可以在Windows菜单下选择Show Tools

Palette命令以显示该模板。当从模板内选择了任一种工具后,【labview高级程序设计,】

鼠标箭头就会变成该工具相应的形状。当从Windows菜单下选择

了Show Help Window功能后,把工具模板内选定的任一种工具

光标放在流程图程序的子程序(Sub VI)或图标上,就会显示相

应的帮助信息。

下面的两个模板是多层的,其中每一个子模板下还包括多个对象。

控制模板(Control Palette)

注意:只有打开前面板时才能调用该模板

该模板用来给前面板设置各种所需的输出显示对象

和输入控制对象。每个图标代表一类子模板。如果控制

模板不显示,可以用Windows菜单的Show Controls

Palette功能打开它,也可以在前面板的空白处,点击

鼠标右键,以弹出控制模板。 控制模板如右图所示,它包括如下所示的一些子模

板。子模板中包括的对象,我们在功能中用文字简要介

绍。

【labview高级程序设计,】

功能模板(Functions Palette)

注:只有打开了流程图程序窗口(即后面板),才能出现功能模板。

功能模板是创建流程图程序的工具。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用Windows菜单下的Show Functions Palette功能打开它,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。

功能模板如右图所示,其子模块如下所示。(个别不常用的子模块未包含)

本文来源:http://www.gbppp.com/jd/467334/

推荐访问:labview程序设计教程

热门文章