labview 图形图表学习笔记

labview  图形图表学习笔记
labview  图形图表学习笔记

图形化数据显示

关键词:图表、波形函数

1、波形图表(GRAPH);

波形图表主要功能是将新测到的数据添加到波形图表的尾端并保存至波形图表的数据缓冲区,在默认情况下,缓冲区可保存1024个数据,缓冲区的存储数量可以在波形图表的右键快捷菜单中选择“图表历史长度”进行修改通过簇绑定的方法可以同时显示多条曲线

2、波形图(waeform)

波形图与波形图表类似。波形图不会像波形图表一样将数据添加的到数据尾部,而是将当前数据一次性地描述在波形曲线中,而且波形图也不能输入标量数据。簇和一维簇数组可以输入波形图。却不能输入波形图表

B、当簇输入波形图时,簇中必须接入三个元素;第一个是横坐标的起始位置X0,第二

个是很坐标的间隔dx,第三个是要输入的数据,数据可以是一维数组、二维数组或者是簇数组。如图所示,在程序框图中先将X0,dx和一维数组/二维数组按照顺序捆绑成簇,然后将簇直接输入到波形图中显示

当两个数组个数不想同时,可将两个数据捆绑成簇数组然后显示

D、显示波形数据

3、定制波形图表

在使用波形图表时需要对其一些属性进行设置。在属性对话框中可设置标尺的格式、精度、最大/最小值,曲线的类型颜色等属性。在图表的右键快捷菜单中也可以对一些属性进行设置,也有一些功能键。另外波形菜单还有一些辅助工具可以通过右键快捷菜单中的“显示”进行选择

外观设置,高级—刷新模式有三种1、带状图表:显示区满后,曲线会整体向左移动,新的数据会接在曲线的尾部;2、示波器图表:在曲线填满显示区后会清空显示区,然后重新开始显示新的曲线;3、扫描图:显示区有一条垂直红线,数据会跟着红线从左向右显示。

在显示多条曲线时,可以设置是否分格显示。右键快捷菜单-分格显示曲线(设置分格显示后需要将图例全部显示出来)

设置曲线属性在属性对话框中曲线标签下可以设置各个曲线的属性。例如可以设置曲线显示格式是点状还是线形,可以选择曲线粗细程度和颜色等。

设置坐标轴属性;在属性对话框中,的“格式与精度”标签下可以设置各个坐标轴的显示类型、显示精度,位数等。在“标尺”标签下可以设置坐标轴是否为对数显示,是否反转、设置标尺的最大值/最小值、颜色等属性。另外,标尺的一些属性可以在右键快捷菜单中进行设置

4、定制波形图

波形图的设置与波形图表大致相同。波形图的外观、标尺、曲线等属性都可以参照波形图中的设置方法进行设置。但是在波形图中,不能将多条曲线进行分格显示。另外,波形图的辅助工具中比波形图表中多了一个“游标图例”项。

A、创建游标:添加游标时,将鼠标放在游标图例上,在右键快捷惨淡中选择“创建游

标——自由/单曲线”则创建的游标是个十字黄线。“自由”表示游标的中心点可以在图形显示区域内自由移动,“单曲线”表示游标的中心点只能在固定的曲线上移动。

游标图例的显示区域会随时显示游标中心点的位置。

B、图形工具选板主要用来选择鼠标的功能。图形工具选板中还有一些用于图形放大、

缩小的工具。例如在图形工具选板中放大图标,然后在需要放大的区域的左边单机鼠标,按住鼠标不放,拖动鼠标至需要放大的区域的右边,松开鼠标。这时显示区中显示的全是该区域的图形,即该区域被放大了。(程序运行时可用)

5、XY曲线图

在用波形图和波形图表显示曲线时,只需要提供Y坐标的数据值,因为他们都是按照顺序显示到X坐标上的。而XY曲线需要成对输入点的X坐标和Y坐标的数据值。XY曲线图在外观构造上与波形图和波形图表相似。各种属性的设置方法也跟前两者相同

6、强度图(Intensity Graph)

波形图、波形图表和XY曲线图反映的都是对应于X轴的Y值大小,用于描绘二维数据。

而强度图反映的是对应于XY平面上各个点。如图所示,用for循环产生5行5列的随机数数组,将数组输出给“强度图”和“数组”显示控件。由于产生的随机数是0到1之间的数,所以要将强度图幅值的最大值和最小值调整为1和0.2。2号程序中的图形是连续的数值产生的100行100列数组所在强度图中的图形。在Z标尺上右击鼠标选择“自动调整Z标尺”,强度图会根据输入数组中的最大/最小值自动调整标尺的最大值/最小值

7、三维曲面图

三维曲面图能够在三维空间观察数据。在labview中,提供选板中提供的三维曲面图实际上只是一些ActiveX容器,每个容器都有各自对应的描绘三维空间表面的VI

将三维曲面图放置到前面板时,程序框图中会自动生成图示的三维曲面“x vector”(X 向量)“y vector”(y向量)要接一维数组,“z matrix”(Z矩阵)接二维数组。如果X向量和Y向量不接输入,那么Z矩阵中二维数组和行索引对应C轴坐标,列索引对应Y轴坐标

人机交互设计

1.对话框

对话框是人机交互的重要途径,在labview中有两种创建对话框的方法,一种是利用labview提供的几种简单的对话框函数创建对话框,另一种是通过创建子VI创建对话框

使用“函数—编程—对话框与用户界面”子选板中。“提示用户输入”VI也位于其中,使用时仅需要设置提示的信息即可

2.创建主菜单

在默认情况下,labview程序运行时菜单栏的主菜单是默认的菜单。Labview也提供了设计自定义主菜单的功能。在labview菜单栏编辑在菜单编辑器中进行。在菜单栏中选择“编辑—运行时菜单。。。。。”可打开菜单编辑器

菜单编辑器的工具栏中有添加按钮和删除按钮。用于添加和删除菜单。左右上下四个方向按钮用来调整菜单项的位置。默认菜单栏下,这些工具是灰色的,不能使用。单击下拉列表右侧的下三角便能在下拉框中进行选择,有默认、最小化和自定义三项。默认指的是默认的菜单,最小化指的是只显示最常用的一些菜单选项.自定义指的是用户编辑自定义菜单。选择自定义后,工具栏中的添加、删除和位置工具便可以使用。右键的菜单项属性窗口用于设置自定义菜单各项的名称、标识符等属性。在选择自定义后这些输入框才可以使用。菜单项类型有三个选项:第一项是用户项,用户可以编辑菜单项的名称和标识符;第二项是分隔符,选择了这一项会在预览栏中添加分隔符;第三项是应用程序项,用户可以将系统预定义的菜单项添加到自定义菜单中

其创建步骤如下

A、

3.

LabVIEW程序实例

1、Build a VI that generate a random number between zero and ten,and then divides it by an input number and diaplays the result on the front panel.If the input number is zero,the VI lights an LED to flag a “divide by zero”error 2、3-1,P43 3、Try create a VI to compute n! 4、求500个随机数中的最大值和最小值。 5、3-3,P44 6、3-4,P46 7、3-5,P49 If implement this equation using regular G arithmetic functions,the block diagram looks like the one in the following illustration.Please imolement the same equation using a Formula Node,and add event to control when the VI executes.

8、设计一个简单信号源,能选择正弦波、三角波和方波并用Waveform Graphe显示。 9、4-1,P68 10、4-5,P72 11、(1)显示一个二维数组的行数和列数(2)查找一个二维数组中最大值,以及最大值在数组中的位置。

12、5-2,P89 13、6-1,P100 14、6-3,P103 15、7-4,P120 16、7-5,P121 17、双边傅里叶

基于labview的画图程序

目录 1 目的及基本要求 (1) 2 画图程序原理 (1) 2.1 基本原理 (1) 2.2 流程图 (1) 3画图程序设计 (2) 3.1 总体程序设计 (2) 3.2 各功能模块详细设计 (3) 4 结果及性能分析 (7) 4.1 运行结果 (7) 4.2 性能分析 (8) 5 设计总结与体会 (8) 参考文献 (8)

1 目的及基本要求 熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现基本的画图功能。 基本要求:本设计要做一个能够画出直线等图形的画图界面,在界面中不仅可以改变线条颜色,还可以进行返回修改。 2 画图程序原理 2.1 基本原理 在VI程序前面板中添加直线,矩形,圆,椭圆以及三角形部件,然后使用六个滑杆类的属性并分成两组,来控制线条颜色,最后添加返回按钮和画图面板,线条颜色显示板,整个程序要用到while循环结构,条件结构,事件结构,元素同址结构。 2.2 流程图 画图程序流程图 选择图形 移动鼠标 在面板上画图 结束 图1画图程序流程图

3画图程序设计 3.1 总体程序设计 在VI程序前面板中分别添加颜色显示控件和面板控件,颜色显示控件可使线条颜色清晰地展现在我们眼前;而面板则是为了画出我们想要的图形做准备。其他的图形控件使此画图程序多样化,增加了图形的可选择性,颜色则由六种基色混合而成,使线条颜色选择更符合使用者要求。 (1)主程序前面板框图如下: 图2画图程序前面板 (2)主程序执行时后面板设计如下:

图3执行时的后面板 3.2 各功能模块详细设计 (1)改变color值时 创建一个子VI,在程序框图中添加一个while循环结构,while循环结构中要用到条件结构,条件结构中要用到事件结构,事件结构中又要用到元素同址结构。 控件图如下: 图4 color值发生改变

图像轮廓线提取

数学实验报告 实验二图像轮廓线提取技术 学院 专业 姓名 学号 成绩单序号 提交日期

一、实验目的 1.了解对matlab的图像处理功能,掌握基本的图像处理方式; 2.掌握imread,imshow,imwrite,subplot,title等的基本使用方法。 3.掌握图像轮廓线提取的简单方法并上机实现。 4.了解matlab自带的边界检测算子的使用,提高对复杂图像处理的能力。 二、实验要求 1.任意选取一幅灰度图像和一幅彩色图像,对算法中若干关键语句中进行调整,得出不同的实验结果,对这些结果进行分析,并与MATLAB自带的边缘检测做对比。 2.提出其它的轮廓线提取方法,与简单阈值法进行比较分析。 三、实验过程 1.任意选取一幅灰度图像和一幅彩色图像,对算法中若干关键语句中进行调整,得出不同的实验结果,对这些结果进行分析。 ⑴灰度图的轮廓线提取,M文件代码: function gray(pix,n) %灰度图的轮廓线提取 A=imread(pix); %读取指定的灰度图%生成与图像对应的矩阵 [a,b]=size(A); %a,b分别等于矩阵A的行数和列数 B=double(A); %将矩阵A变为双精度矩阵 D=40*sin(1/255*B); %将矩阵B进行非线性变换 T=A; %新建与A同等大小矩阵 for p=2:a-1 %处理图片边框内的像素点 for q=2:b-1 if (D(p,q)-D(p,q+1))>n|(D(p,q)-D(p,q-1))>n|(D(p,q)-D(p+1,q))>n|(D(p,q)-D(p-1,q))>n|( D(p,q)-D(p-1,q+1))>n|(D(p,q)-D(p+1,q-1))>n|(D(p,q)-D(p-1,q-1))>n|(D(p,q)-D(p+1,q +1))>n T(p,q)=0; %置边界点为黑色%新建轮廓线矩阵 else T(p,q)=255; %置非边界点为白色 end; end; end; subplot(2,1,1); %将窗口分割为两行一列,下图显示于第一行 image(A); %显示原图像 title('灰度图原图'); %图释 axis image; %保持图片显示比例 subplot(2,1,2); %下图显示于第二行 image(T); %显示提取轮廓线后的图片

labviewDAQ学习总结

使用LabVIEW创建应用程序 如在LabVIEW中对NI-DAQmx支持的设备进行编程,可在MAX或LabVIEW中打开DAQ助手,交互式地创建全局或局部虚拟通道和任务。详细信息,见DAQ助手帮助。也可使用NI-DAQmx API创建局部虚拟通道和任务,并编写应用程序。完成下列步骤,在LabVIEW中创建应用程序: 1.打开现有或新建一个LabVIEW VI。 2.使用NI-DAQmx VI和属性构建VI。 关于NI-DAQmx VI的帮助信息,见NI-DAQmx C Function Reference Help。关于LabVIEW编程的详细信息,见LabVIEW帮助。 在LabVIEW SignalExpress中创建应用程序 如要在LabVIEW SignalExpress中使用NI-DAQmx支持的设备,可创建一个包含NI-DAQmx步骤的项目。LabVIEW SignalExpress用于记录和分析数据。在LabVIEW SignalExpress中,可将在MAX中创建的全局虚拟通道添加至NI-DAQmx步骤。详细信息见DAQ助手帮助。完成下列步骤,开始使用LabVIEW SignalExpress: 1.单击Add Step,然后选择Acquire Signals?Acquire DAQmx?Analog Input?Voltage,放置DAQmx采集步骤。 2.单击+按钮,将通道添加至NI-DAQmx步骤。 关于将DAQ助手与LabVIEW SignalExpress配合使用的帮助信息,见Taking an NI-DAQmx Measurement in LabVIEW SignalExpress。关于在LabVIEW SignalExpress中编程的常规帮助信息,见LabVIEW SignalExpress Help。疑难解答 安装和配置 关于安装和配置的一般说明,请参考DAQ入门指南和SCXI快速入门手册。 如安装DAQ硬件或软件时有任何问题,请使用下列资源: ?关于疑难解答指导,请登录https://www.360docs.net/doc/a410490855.html,/support/install,查看硬件安装或配置答疑。 ?关于常见安装和编程问题的疑难解答和NI产品的常见问题解答,请参考https://www.360docs.net/doc/a410490855.html,/kb 的知识库文档。

Labview中的图像处理案例介绍

Labview中的图像处理案例介绍 发布时间:2016-01-07之前我们介绍了MV-EM130M工业相机的实时图像获取方法,本文再结合labview的图像处理函数给出一种简单的图像处理VI。此处的图像处理包括对图像进行采样,找出与采样点相同的图像。为了找出各种角度放置的采样点,在查找的同时对图像进行了360°的翻转,这样可以找出图像上所有相同点。 由于软件的运行比较复杂,数据的采集又是实时的,要求处理速度比较快,所以要对其进行整体设计,合理安排控件的调用和执行顺序。本程序中采用了一个大循环,保持程序的持续运行。在内部再调用一个顺序结构来控制程序的执行顺序,这样可以保证程序按编程者的思路进行。 图像采集&整个程序流程图 读取了图像数据后,还要设置查找的像素。这里通过一个光标选择函数来实现。先用函数IMAQ Setup Learn Pattern 2来设置需要记录的各项,然后再用IMAQ Extract函数进行光标设置。这样就记录了此光标区域的图像数据。

设置查找像素 这里用一个条件结构来控制是否进入记录像素的程序,也就是当选择了要记录的像素后,才进入此分支程序。在这一分支程序中,又利用了一个顺序结构,这样提高了程序运行的效率。 复位记录按钮 当设置完以上要查找的像素后,就可以在需要的图片中查找此像素。为了查找有用的像素,在选择了“开始查找”后,要先读取上面标记的像素,再进行查找。此处程序的设计中,也是先运行一个条件结构,再运行顺序结构,按顺序执行程序。 读取选择的像素 当读取像素后,利用顺序结构在第二帧的图像中继续查找。在这一帧中放置了一个循环,并限制循环次数为4。此时先用一个IMAQ Rotate对图像进行翻转,每次翻转90°。这样就可以在循环4次时翻转一周,对图像上各个角度的像素进行查找。再把图像送到IMAQ Match Pattern 2函数,对其进行查找。通过此函数直接输出找到的像素信息的数组。为了对找到的信息进行处理,又用一个For循环对此数据和簇进行拆分。 程序编写完成后,要对系统进行软硬件的联机调试。这里把维视图像的MV-EM130M工业相机用网线和计算机连接,并在计算机上安装驱动程序。具体操作如下:

CCD图像的轮廓特征点提取算法

第33卷第4期电子科技大学学报V ol.33 No.4 2004年8月Journal of UEST of China Aug. 2004 CCD图像的轮廓特征点提取算法 侯学智,杨平,赵云松 (电子科技大学机械电子工程学院成都 610054) 采用最大方差法将图像二值化,用图像形态学的梯度细化和修剪算法来提取边缘轮廓,利用十一【摘要】﹑ 点曲率法得到轮廓的角点和切点的大致位置。提出了一种基于最小二乘拟合的改进算法,来进一步确定角点和切点,并对轮廓分段识别。该算法应用在基于图像处理的刀具测量系统中,实际结果表明具有良好的抗噪声性能,能准确提取出图像的特征点。 关键词刀具测量; 细化; 曲率; 最小二乘拟合; 角点 中图分类号TP391 文献标识码 A Contour Feature Point Detection Algorithm of CCD Image Hou Xuezhi,Yang Ping,Zhao Yunsong (School of Mechatronic Engineering, UEST of China Chengdu 610054) Abstract The image is segmented to Bi-value image with max variance algorithm, and then the edge is detected by a series of image morphology algorithm including grads, thinning and cutting. The eleven point curvature-computing method is used to locate the area of corner and point of tangency. An improved algorithm based on least square fitting is given to search corner and point of tangency. This algorithm is applied to the cutting tools measurement system based on image processing and the actual result proves it has a good noise-resisted performance and can detect feature points accurately. Key words cutting tools measurement; thinning; curvature; least square fitting; corner 目前数控加工精度已达到微米级,对刀精度要求愈来愈高。传统的刀具测量方式采用人眼瞄准,容易带来主观误差,使对刀精度降低。在基于图像处理的刀具测量系统中,CCD数码相机将对刀状态的图像摄入,通过USB接口输入计算机。首先提取出刀具轮廓的特征点,再对轮廓曲线进行分段,从而测量刀具的长度﹑半径﹑角度等参数。通常利用曲率信息来提取轮廓特征点,三点曲率法对噪声较敏感,十一点曲率法能较好地估算出轮廓的曲率,并能简单提取出轮廓的角点与切点区域[1, 2]。本文提出利用最小二乘法拟合角点和切点区域的曲线,根据计算的斜率和曲率的特点能有效确定角点和切点。 1 图像预处理 被测刀具的图像如图1所示。CCD相机采集到刀具的彩色图像,将其转化为256色的灰度图像,如图1a 所示,采用最大方差阈值法将图像二值化。由于刀具表面存在油污,光线散射等原因,图像二值化后,在刀具部分有颗粒状噪声,而刀具以外有细小孔洞存在,所以在提取轮廓前,采用形态学算子滤波。在图像形态学中,最基本的运算是腐蚀和膨胀运算,通过腐蚀和膨胀可以构成开运算与闭运算。开闭运算都能够平滑边缘,其中开运算能够消除细小物体,闭运算能够填充物体孔洞。本文采用方形结构元素,对图像先闭运算后开运算,有效地滤除了图像的细小孔洞和噪声,而刀具的结构和面积基本保持不变。图1b所示为 收稿日期:2003 ? 07 ? 24 作者简介:侯学智(1980 ? ),男,硕士生,主要从事工业测控技术方面的研究.

(完整版)虚拟仪器学习心得总结

虚拟仪器学习心得总结 姓名:王水根 学号:1083420213 班级:0801101班 学院:电气学院 指导老师:付宁

虚拟仪器学习心得总结 王水根 刚开始接触虚拟仪器这个概念的时候是在大三的上学期,我不记得那天具体是什么日子了,只记得公寓前面展板上多了一个很大的海报,内容大概是哈工大虚拟仪器协会成立招新和第一届全国虚拟仪器设计大赛的相关说明。这是我第一次接触“虚拟仪器”这个当时陌生的新词。一看到这个词我马上想到我们经常用的仿真软件Multisim,那里面就有好多虚拟的电源、示波器、万用表,还有频谱分析仪、逻辑分析仪等。顿时,我觉得这个很有意思啊,要是能自己在电脑里设计一个示波器那就厉害了。可是那个虚拟的仪器又是怎么集成到其他电路仿真软件上的呢?还有虚拟仪器的定义到底是什么呢?不知道。所以我带着这些疑问上网查找和虚拟仪器的相关文档,看看虚拟仪器到底是一个什么东西,虚拟仪器在哪些领域有应用。 后来,我参加了协会组织的招新,初次接触了Labview,在花了一个通宵做完招新布置的作业后,我也成了一名Labview的初学者。这之后我知道了Labview 这个软件是用来设计虚拟仪器的,而虚拟仪器是用计算机设计的一个软件,它能完成一台台式仪器的功能。比如可以用Labview设计一个信号发生器,产生正弦波、方波、三角波、锯齿波、任意占空比矩形波等。 而Labwindows/CVI我上大二时实验室的师兄跟我说过,他那时跟我说CVI 是用来设置界面用的,一般都是硬件配上CVI一块用。可是在系统学习CVI之前我从没用过Labwindows/CVI。CVI和Labview都是很好用很优秀的软件,在自动化测试领域有着特别重要的作用。Labview采用的是G语言,也就是图形化语言,它不仅是一种编程环境,也是一门编程语言。Labview因为采用的是图形化语言,所以和CVI比起来学习更容易,编程也更简单,比较适合于专业知识比较薄弱的学习者。Labview采用的编程思想和传统C语言一样,是嵌套,主函数包含子函数的思想。所以,当要编写比较大的程序时,整个结构就显得很大很复杂,编写起来比较困难。这时,CVI相对就比较适合,因为C语言相对G语言逻辑性强,结构性要强。下面我就说说这次学习CVI的心得感受。 首先,老师帮我纠正了之前我对虚拟仪器的理解。虚拟仪器是在通用计算机上加上一组软件和/或硬件,使用者在操作这台计算机时,就像是在操作一台他自己设计的专用电子仪器。虚拟仪器是一种软件定义的系统,它基于用户需求的软件定义了一般测量硬件的功能。这就应证了前面师兄跟我说的那句话,光有软件也是不行的,还得有硬件配合,任何软件都有一定的局限性,因为它们都是基于操作系统平台的,而硬件是不需要任何平台的,它自身就可以成为一个平台。 后来,我知道了如何用CVI去设计一台虚拟仪器,了解了设计虚拟仪器的步骤。和Labview设计虚拟仪器的步骤很像,用CVI设计虚拟仪器首先也是先设计软面板,在CVI中是“.uir”文件,然后是编写程序代码,最后是编译调试运行。后来,我们比较系统性地学习了CVI测试数据的显示、分析、存储和传输方面的

Labview串口通信开发实例(值得拥有)

串口通信的基本概念 串口通信的基本概念 1,什么是串口? 2,什么是RS-232? 3,什么是RS-422? 4,什么是RS-485? 5,什么是握手? 1,什么是串口? 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米; 而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参 数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB 设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信 的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和

LabVIEW教程第四章图形显示

第四章图形显示 4.1概述 图形显示对于虚拟仪器面板设计是一个重要的内容。LabVIEW为此提供了丰富的功能。在前面几章我们已经接触了这个问题,现在较系统地介绍一下。 我们不从图形的实现方法上去讨论问题,那是计算机图形学的课题。但我们需要从用户的可能的需求角度探求一下,如果你需要做虚拟仪器方面的开发,那么可能遇到些什么图形问题。LabVIEW在这方面所做的工作是非常值得借鉴的。 在LabVIEW的图形显示功能中Graph和Chart是两个基本的概念。一般说来Chart是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映被测物理量的变化趋势,例如显示一个实时变化的波形或曲线,传统的模拟示波器、波形记录仪就是这样。而Graph则是对已采集数据进行事后处理的结果。它先将被采集数据存放在一个数组之中,然后根据需要组织成所需的图形显示出来。它的缺点是没有实时显示,但是它的表现形式要丰富得多。例如采集了一个波形后,经处理可以显示出其频谱图。现在,数字示波器也可以具备类似Graph的显示功能。 LabVIEW 方式表现形式要远为丰富,但这是以牺牲实时为代价的。在LabVIEW 6i版本中还包含有极坐标等其他图形(Plot),本章不讨论。 4.2Graph控件 各种图形都提供了相应的控件,以Graph为例介绍。图4-1所示为它的控件。所有这些控件都包含在图形快速菜单的Visible Items选项下。 曲线图例可用来设置曲线的各种属性,包括线型(实线、虚线、点划线等)、线粗细、颜色以及数据点的形状等。 图形模板可用来对曲线进行操作,包括移动、对感兴趣的区域放大和缩小等。 光标图例可用来设置光标、移动光标,帮助你用光标直接从曲线上读取感兴趣的数据。 刻度图例用来设置坐标刻度的数据格式、类型(普通坐标或对数坐标),坐标轴名称以及刻度栅格的颜色等。

用Labview实现图像采集

用Labview实现图像采集 一、程序功能: 1.通过选择相机实现电脑摄像头或CCD连续图像采集。 2.控制图像采集时间。 3.显示图像采集速率和程序运行时间。 4.给采集到的图像命名并保存到特定的文件夹。 二、程序介绍: 1.前面板(控制面板) 要求:实现连续图像采集所需要的软件条件: 1.安装VAS(Vision Acquisition Software) 2.如果要实现CCD图像采集,需安装CCD的驱动程序 操作说明: 1.选择相机名称 2.设置采集时间 3.运行VI 相机名字:通过下拉菜单选择相机,包括电脑摄像头和USB接口的CCD设备采集速率。采集速率:实时显示采集图像的速率。 缓冲数:实时显示从程序运行开始采集图像的数目。 设置采集时间:根据需求设置采集时间。默认值为0,只采一幅图像。 采集进行时间:程序已经运行的时间。 设置保存路径:指定图片的保存位置。如果不设置,只进行实时采集不保存图像。Stop:采集停止。 图像:显示图像信息。左侧为兴趣区域选择工具,作用是使研究区域更加醒目,便于观察。从上到下依次是: 实现图形的放大 显示鼠标位置,不进行其他操作 拖动图片 选择兴趣区为一点 选择兴趣区为矩形包围的区域,两边为水平和竖直

选择兴趣区为矩形包围的区域,矩形方向任意 选择兴趣区为折线 选择兴趣区为折线区域(所画折线自动闭合) 选择兴趣区为曲线 选择兴趣区为曲线保卫的区域 选择兴趣区为椭圆 选择兴趣区为圆环 以折线兴趣区域为例,如图 2.后面板(程序框图) 1. 循环,将采集、保存、计时等功能循环进行。 在循环中,获取最新的图像并输出。 2.循环的初始条件设置,选择相机,并将相机作为循环的输入。 和前面版里的相机名字相对应,作用是选择相机。 打开一个照相机,查询摄像机功能,装载的照相机的配置文件,并创建一个唯一的参考到摄像机。 Camera Control Mode照相机控制模式,在控制器模式打开相机,配置和获取图像数据。Session In指定要打开摄像机的名称,默认值是CAM0。 Session Out是相机的一个参考,输出图像数据。 配置并开始抓取图像,抓取循环连续进行,并将抓取到的图像放到缓冲区,可以实现高速图像采集。 Session In/out作用与打开相机里的类似。 3.循环结束时,关闭相机,若循环出错,则关闭相机并报错。 终止采集程序并关闭相机。 当有错误输入时,破坏图像,并释放它在存储器占据的空间。 4.将从相机采集到的数据,以图像的形式输出,并计算图像采集速率和采集数,在前面板输出。 5.在循环中计算采集速率和程序运行速率,控制采集时间。 本部分与stop按钮以及错误三者共同控制条件的运行,当三个条件中的任意一个为真时,循环都会终止。 显示从指定起始时间起,已经用去的时间,达到目标时间后会重置。“已用时间(s)”可以输出程序运行的时间。将已用时间与设置时间进行比较,当已用时间大于设置时间是条件为真,控制循环停止。 6.在特定的路径保存图像,并通过循环为其命名。

labview复习重点总结

Labview复习题 一、填空 1. 所有的LabVIEW 应用程序,即虚拟仪器(VI),它包括前面板、流程图以及图标/连结器三部分。 2. LabView有三种操作模板,分别是控件模板、函数模板和工具模板。 3. CIN节点需要调用*.lsb格式文件,这种文件可以通过Visual C++来生成。 4. 虚拟仪器设计中连线为虚线时表示数据类型不匹配出错,当RUN按钮显示为折断的箭头时,表示程序有错误发生。 5.在LabView中局部变量主要用于程序内部传递数据,全局变量主要用于程序之间传递数据。 6. 程序框图由端口、节点和连线组成的可执行代码。 7、数组是相同类型的数据元素的集合,数据元素的类型可以是任意的,可以创建数值数组、布尔数组、字符数组和簇数组。 8、数据采集系统由被测参数→传感器→信号调理→数据采集卡→计算机组成。 9、Labview支持文本文件,二进制文件,数据记录文件,波形文件,测试数据文件等格式的文件输入和输出。 10、数据采集卡性能指标有输入通道数,输出通道数,采集位数,采集速度等。 11、循环边框上的数据出口为一个小方块,称为移位寄存器,具有存贮数据功能,对FOR 循环而言第一次循环时布尔型数据出口值为false。 12、虚拟仪器在使用数据采集卡之前必须运行专用软件MAX进行配置,如设置通道名,输入输出类型,测量类型等。 13、LabVIEW概念是一种用图标代替文本行创建应用程序的图形化编程语言。 14、传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序。它用图标表示函数,用连线表示数据流向。 15、LabVIEW程序为称为VI,扩展名默认为.vi。 16、程序框图是图形化源代码的集合,这种图形化的编程语言也称为G语言。

LabVIEW软件应用实例

图象处理方法在车灯配光检测系统中的应用研究 Image Processing T echnique’s Application and Research in the Automobile Lamp Quality Measurement System 作者:金晅宏 戴曙光 穆平安 单位:上海理工大学光电学院 应用领域:汽车工业 使用的产品:LabVIEW ; NI-IMAQ ;NI-DAQ ; 挑战:将成熟的计算机视觉技术 引入车灯配光检测系统中,应用多种图象处理方法同时实现汽车车灯光轴交点检测和车灯零件检测。 应用方案:使用National Instruments 公司的IMAQ 可视化软件、LabVIEW 图片控制工具包、执行程序生成器和LabVIEW 来开发一个经济、灵活的基于PC 的车灯配光检测系统。 介绍: 车灯配光检测系统原为两套系统:车灯光轴交点检测系统和车灯零件检测系统,其通过人工目测检测车灯光轴交点,应用物位传感器精确定位来检测零件的缺损。本车灯配光检测系统将两系统二合为一,根据测量对象的特征,应用图象卷积、边缘特征提取、图象模式匹配等多种图象处理的方法,实现对不同型号的车灯进行车灯零件缺损检测和车灯光轴交点的自动检测。 系统组成: 整个系统包括硬件部分和软件部分。其系统组成简图如图1所示: 图1:系统组成简图 硬件部分主要运用黑白的CCD 摄取图象,图象通过美国NI 公司的1407图象采集卡传送入PC 机进行处理及数据显示,应用NI_DAQ6023卡控制摄像头间的切换及系统的启动和停止。本系统采用NI 公司的LabVIEW5.1及其图象处理软件包IMAQ Vision5.0作为软件操作平台。其系统的主界面如下图(图2)所示: 图2:系统主界面 系统运行中的一个检测报错界面如下图(图3)所示: 图3:检测报错界面 运用NI (美国国家仪器公司)的这套虚拟开发平台软件,是因为其使用图形化编程语言编写,并提供丰富的库函数和功能模块,具有功能强大及运用灵活等特点,极大的节约了程序开发时间。 光轴交点检测中的图象预处 理方法 (1) 光轴特征分析 本车灯配光检测系统实现计 算机自动检测车灯前照灯光路所成的交点。若为一右侧行驶前照灯, 则其光路图如图4所示: 图4:前照灯光路图 h-h :通过前照灯焦点的水平面; H-H2:道路中心线; v-v :通过前照灯的垂直面; 根据前照灯光路标准H —H2与h —h 的夹角为15°,且ZONE1 为暗区,而ZONE2为亮区,两个区域分界明显,有较大的亮度对比度。H-H2与h-h 的交点位置是车灯光轴检测的一个重要参数。 (2) 图象的原始LUT 变 换 LUT (Look_up Table )变换是一种 很基本的图象处理技术,其对图象象素的灰度值进行特定计算及转换,可以达到突出图象的有用信息,增加图象的光对比度,对要进行边缘检测的图象尤佳,可以使边缘明显。本系统的车灯光轴原始图如图5所示: 图5:光轴原始图

基于Labview的图像采集与处理

目前工作成果: 一、USB图像获取 USB设备在正常工作以前,第一件要做的事就是枚举,所以在USB摄像头进行初始化之前,需要先枚举系统中的USB设备。 (1)基于USB的Snap采集图像 程序运行结果: 此程序只能采集一帧图像,不能连续采集。将采集图像函数放入循环中就可连续采集。

循环中的可以计算循环一次所用的时间,运行发现用Snap采集图像时它的采集速率比较低。运行程序时移动摄像头可以清楚的看到所采集的图像有时比较模糊。 (2)基于USB的Grab采集图像 运行程序之后发现摄像头采集图像的速率明显提高。

二、图像处理 1、图像灰度处理 (1)基本原理 将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。图像的灰度化处理可用两种方法来实现。 第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。 第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。 (2)labview中图像灰度处理程序框图 处理结果:

labview学习感受

学习labview有快半年了,做个总结。回顾一下自己的摸索过程。 幸运的是有个项目用到Labview,因此边学边用,由于有前一项目的经验作参考,可以说是在模仿中学习。从学习到使用给我最大感受是labview编程容易上手,帮助文档方便,就是太贵了,比较少企业会使用,特别是小企业。虽然这样,还是很推崇学习labview的。废话少说,转入正题。 其实总结自己的摸索过程也等于是在做项目总结。首先从使用的模块做总结: 1、毫无疑问的串口通信; 2、与数据采集相对应的TDMS数据存储模块; 3、报表输出(word,excel,html); 4、连续的波形显示以及从TDMS里读取显示; 5、待解决的xcontrol控件; 模块分析:1、对于串口通信:主要是要设置成有数据即读取,而不能等到接收缓冲区满时再读取。2、TDMS数据存储,关键点是数据量大的时候如何压缩存储,以及利用TDMS本身的属性设置(可以参见TDMS属性设置帮助),减小存储文件的大小。否则如果数据发送速率快的话,文件大小是很可观的,压缩数据的方式有很多种,我采用的是读取采样间隔长度的数据,提取最大最小值的方式。具体如下: 1) 中间数组存储采样间隔长度的数据;2) 提取中间数组的最大最小值;3)删除中间数组的采样间隔长度;4)将删除后剩余的数组重新赋值给中间数组,给下一次使用。3、报表输出比较简单,la bview已经将要用到的程序封装成一个个VI,只需要调用这些VI,

拼凑成你需要的报表模板形式即可。这一块参考的是方慧敏写的报表输出demo程序。4、 最近开始了上下位机的联调,涉及到了数据采集与数据处理,数据保存,数据导出四者并行执行最需关注的问题,数据同步的问题。全部数据传递都用全局变量需要在数据采集不到数据的时候让全局变量 输出空数据,这种方法显得有点麻烦,而且是多处对全局变量写。有可能会发生竞争。于是翻看labview相关书籍,关于同步技术方面的,其中队列和通知都是很好的方法,采用通知技术可以很好的解决这类问题。

图像轮廓提取

OpenCV笔记9:提取并显示图像轮廓 01#include 02#include 03#include 04#include 05void main() 06{ 07int i=0; 08int mode=CV_RETR_CCOMP; //提取轮廓的模式 09int contoursNum=0; //提取轮廓的数目 10CvScalar externalColor; 11CvScalar holeColor; 12CvMemStorage*storage=cvCreateMemStorage(0); //提取轮廓需要的储存容量0为默认64KB 13CvSeq*pcontour=0; //提取轮廓的序列指针 14IplImage*pImg=NULL; 15IplImage*pContourImg=NULL; 16IplImage*src=cvLoadImage("pic3.png",-1); 17pImg=cvCreateImage(cvGetSize(src),src->depth,1); 18pContourImg=cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,3); 19cvCvtColor(src,pImg,CV_RGB2GRAY); //将图像转换为灰度 20cvNamedWindow("src",CV_WINDOW_AUTOSIZE); 21cvNamedWindow("pcontour",CV_WINDOW_AUTOSIZE); 22cvShowImage("src",src); 23cvThreshold(pImg,pImg,180,255,CV_THRESH_BINARY); //二值化 24//--------------查找轮廓---------------- 25mode=CV_RETR_LIST; 26 contoursNum=cvFindContours(pImg,storage,&pcontour,sizeof(CvContour),mode,CV_CHAIN_APPRO X_NONE); 27cout<h_next) 30{ 31holeColor=CV_RGB(rand()&255,rand()&255,rand()&255); 32externalColor=CV_RGB(rand()&255,rand()&255,rand()&255); 33cvDrawContours(pContourImg,pcontour,externalColor,holeColor,1,2,8); 34} 35cvShowImage("pcontour",pContourImg); 36cvWaitKey(0); 37cvReleaseImage(&src); 38cvReleaseImage(&pImg); 39cvReleaseImage(&pContourImg); 40}

LABVIEW重点总结

显示对象(Indicator)、控制对象(Control)和数值常数对象:显示对象和控制对象都是前面板上的控件,前者有输入端子而无输出端子,后者正好相反,它们分别相当于普通编程语言中的输出参数和输入参数。数值常数对象可以看成是控制对象的一个特例。 在前面板中创建新的控制对象或显示对象时,LabVIEW 都会在流程图中创建对应的端子。端子的符号反映该对象的数据类型。例如,DBL 符号表示对象数据类型是双精度数;TF 符号表示布尔数;I16 符号表示16位整型数;ABC符号表示对象数据类型是字符串。 一个对象应当是显示对象还是控制对象必须弄清楚,否则无法正确连线。有时他们的图标是相似或相同的,可以根据需要明确规定它是显示对象还是控制对象。方法是将鼠标移到图标上,然后点右键,可出现快速菜单。如果菜单中有Chang to Control,说明这是一个显示对象,可以根据需要,将其变为控制对象。如果菜单中有Chang to Indicator ,说明这是一个控制对象,也可以根据需要,将其变为显示对象。 在默认情况下,对于每个连接到For循环的数组都会执行自动索引功能。 在默认情况下,对于每个连接到While循环的数组都不会执行自动索引功能。 可以禁止/启用这个功能的执行,方法是用鼠标右键单击通道(数组进/出循环的位置),在快捷菜单中选择Disable/Enable Indexing。 ?While循环: ?计数从0开始(i=0)。 ?先执行循环体,而后i+1,如果循环只执行一次,那么循环输出值i=0。 循环至少要运行一次。 移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。 For循环用于将某段程序执行指定次数。 For循环具有下面这两个端子: N: 计数端子(输入端子)—用于指定循环执行的次数。 i: 周期端子(输出端子)—含有循环已经执行的次数。i≠N Case结构含有两个或者更多的程序分支,执行哪一个取决于与选择端子或者选择对象的外部

labview应用实例之motor控制

实验名称:LabVIEWIO输出实验 组号:62 同组者:日期: 4.28 【一】实验目的 学习和掌握LabVIEW串口通信的工作原理、功能和使用方法; 使用示波器测量电信号的各种参数; 【二】实验主要仪器设备 一台安装LabVIEW 、Proteus、IN_VISA串口通讯协议驱动和虚拟串口软件VSPD 的PC 机; 单片机实验板。 【三】实验原理 在串口通信中,由于实际上传输的是ASCII码,但是一般字符串控件显示出来的并不是其对应的ASCII码,关于字符串正常显示和十六进制显示,LabVIEW帮助文档里面是这么写的: 正常显示------可打印字符以控件字体显示。不可显示字符通常显示为一个小方框。 十六进制显示------每个字符显示为其十六进制的ASCII值,字符本身并不显示。 比方说对于01这个字符串,如果是正常显示情况下输入01,下位机接收的是其对应的ASCII码而不是01本身;如果是十六进制显示情况下输入01,下位机接收的是十六进制的01。上位机接收下位机发送的字符串同样是ASCII码,一般情况下如果不加转换,在正常显示情况下是乱码,在使用LabVIEW在编程处理直接处理这些字符串的时候,就会出现问题了。于是很多时候需要对字符串正常显示和十六进制显示做一个强制转换,以方便处理。 正常显示至十六进制显示强制转换,一般用于VISA Write:

需要注意的是,在输入端Normal Display String输入的时候要确保字符是以两位的格式输入,比如需要输入1,格式要为01,否则会出错。 十六进制显示至正常显示强制转换,一般用于VISA Read: 【四】实验内容 a. 实验步骤

labview数组、簇和图形的区别

数组是同类型元素的集合。一个数组可以是一维或者多维, 如果必要,每维最多可有231-1个元素。可以通过数组索引访问 其中的每个元素。索引的范围是0到n – 1,其中n是数组中 元素的个数。图3-1所显示的是由数值构成的一维数组。注意 第一个元素的索引号为0,第二个是1,依此类推。数组的元素 可以是数据、字符串等,但所有元素的数据类型必须一致。 图3-1数组示意图 簇(Cluster)是另一种数据类型,它的元素可以是不同类 型的数据。它类似于C语言中的stuct。使用簇可以把分布在流 程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤 程度。减少子VI的连接端子的数量。 波形(Waveform)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类型,但非常实用。 3.2数组的创建及自动索引 3.2.1创建数组 一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后在这个壳中置入数组元素(数或字符串等)。 如果需要用一个数组作为程序的数据源,可以选择 Functions?Array?Array Constant,将它放置在流程图中。然后 再在数组框中放置数值常量、布尔数还是字符串常量。下图显示 了在数组框放入字符串常量数组的例子。左边是一个数组壳,中 间的图上已经置入了字符串元素,右边的图反映了数组的第0个 元素为:”ABC”,后两个元素均为空。 图3-1数组的创建 在前面板中创建数组的方法是,从Controls模板中选择 Array & Cluster,把数组放置在前面板中,然后选择一个对象 (例如数值常量)插入到数组框中。这样就创建了一个数值数组。 也可以直接在前面板中创建数组和相应的控制对象,然后将

相关文档
最新文档