NIvision标准详解.docx

上传人:b****4 文档编号:4971717 上传时间:2023-05-07 格式:DOCX 页数:69 大小:1.56MB
下载 相关 举报
NIvision标准详解.docx_第1页
第1页 / 共69页
NIvision标准详解.docx_第2页
第2页 / 共69页
NIvision标准详解.docx_第3页
第3页 / 共69页
NIvision标准详解.docx_第4页
第4页 / 共69页
NIvision标准详解.docx_第5页
第5页 / 共69页
NIvision标准详解.docx_第6页
第6页 / 共69页
NIvision标准详解.docx_第7页
第7页 / 共69页
NIvision标准详解.docx_第8页
第8页 / 共69页
NIvision标准详解.docx_第9页
第9页 / 共69页
NIvision标准详解.docx_第10页
第10页 / 共69页
NIvision标准详解.docx_第11页
第11页 / 共69页
NIvision标准详解.docx_第12页
第12页 / 共69页
NIvision标准详解.docx_第13页
第13页 / 共69页
NIvision标准详解.docx_第14页
第14页 / 共69页
NIvision标准详解.docx_第15页
第15页 / 共69页
NIvision标准详解.docx_第16页
第16页 / 共69页
NIvision标准详解.docx_第17页
第17页 / 共69页
NIvision标准详解.docx_第18页
第18页 / 共69页
NIvision标准详解.docx_第19页
第19页 / 共69页
NIvision标准详解.docx_第20页
第20页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

NIvision标准详解.docx

《NIvision标准详解.docx》由会员分享,可在线阅读,更多相关《NIvision标准详解.docx(69页珍藏版)》请在冰点文库上搜索。

NIvision标准详解.docx

NIvision标准详解

NIVisionforLabVIEW基础

(一):

NIVision简介  

2013-04-1217:

33:

01|  分类:

 默认分类|字号 订阅

Vision控件模板位于LabVIEW控件模板的最顶层,由一下元素组成:

IMAQImage.ctl—该控件是一个类型定义,用于声明图象类型的数据。

在VI的前面板中使用该控件代表图象类型数据。

例如,使用该控件作为一个子程序的输入或输出,使调用成成可以将一幅图像传送给子程序。

图像显示(ImageDisplay)—该控件用于在LabVIEW 中直接显示图像。

也可以利用该控件创建关注区域 (ROIs)。

图像显示控件提供标准和3D版两种外观。

IMAQ 视觉控件(IMAQVisioncontrols)—这里的控件用于将NIVision的程序控件直接加入入用户自己的程序中获得相应的功能。

机器视觉控件(MachineVisioncontrols)—这里的控件用于将NIVision的机器视觉控件直接加入到用户自己的程序中以获得相应的功能。

NIVision 函数模板

NIVisionforLabVIEW 由三个主要的函数模板组成:

常用视觉程序(VisionUtilities), 图像处理(ImageProcessing), 和机器视觉(MachineVision)。

本节介绍这些模板以及它们的子模板。

常用视觉程序(VisionUtilities)

常用视觉函数用于在NIVision中处理和显示图像。

ImageManagement—管理图像程序组。

利用这些程序可以建立和释放图像,设置和读取图像的属性例如尺寸和偏移量,复制图象。

也可以使用一些高级的Vis来定义图像的边框区域以及访问图像数据的指针。

Files—一组使用不同格式读、写图像文件,并从文件中获得所包含的图像的信息的程序模块。

ExternalDisplay—用于在外部窗口显示图像的程序模块组。

使用这些程序模块可以完成以下任务:

读取和设置窗口属性,如尺寸、位置、缩放系数

为图像窗口设置调色板

建立及使用图像浏览器

在图像窗口上为选中的关注区域建立和使用不同的交互式绘图工具。

检测画图事件

获得图像窗口上有关关注区域的信息。

RegionofInterest—管理关注区域的程序组。

使用这些程序可以通过编程来定义关注区,以及定义关注区和图像掩码和关注区之间的相互转换。

ImageManipulation—修改图像颗粒内容的程序模块组。

利用这些程序模块可以实现图像的重新采样、提取部分图像,以及图像的旋转、平移、打包。

该子模板还包括了图像与剪贴板之间相互拷贝的程序模块。

PixelManipulation—读取和修改图像中单独像素的程序模块组。

利用这些程序模块可以读取和设置图像中的像素,或者图像中的一行或一列;向图像中的地像素填充特定的值;实现图像和2维LabView矩阵之间的相互转换。

Overlay—一组不改变图像的像素值的情况将图形覆盖在在图像显示环境上的程序模块。

利用这些程序模块可以使检测程序将检测结果覆盖在被检测图像上。

Calibration—空间校准图像的程序模块组,用于排除相机景深和镜头畸变,以获得精确的真实的测量结果。

利用这些程序建立简单的校准,或者让NIVision从网格图像中自动学习校准数据。

还可以利用这些程序模块将像素坐标转换成真实坐标以便于测量。

ColorUtilities—访问彩色图像数据的程序模块组。

利用这些程序可以从图像中提取调色板,用新的数据替换彩色图像的调色板,在彩色图像与2D矩阵之间转换,读取和设置彩色图像的像素值,将像素值从一个彩色颗粒转换到另外一个彩色颗粒。

VisionRT—为LabVIEW实时模块使用NIVision提供的函数组。

利用这些程序模块可以在实时系统中将图像显示到视频输出中;控制发送到网络上的图像的压缩设置,以及实时系统中处理程序的时间区段。

图像处理(ImageProcessing)

NIVision 中的分析、滤波和图像处理函数。

Processing—处理灰度和二值图像的程序模块。

利用这些函数可以使用不同的阈值将灰度图像转换成二值图像。

也可以利用这些程序使用预定义或自定义的查找表变换图像,进行分界变换,修改图像的对比度,图像反向。

Filters—滤波器,用于增强图像中的信息。

利用这些程序可以实现虚像平滑、去除噪声、高光或强化图像中的边沿。

可以利用预定义的卷积内核,也可以使用自定义的卷积内核。

Morphology—形态学组,进行图像形态学运算的程序模块。

其中一部分程序完成基本的形态学运算,如灰度和二值图像上的膨胀和腐蚀。

另一部分程序用于改进二值图像的质量,微粒补孔、去除边框颗粒、去除小颗粒、基于颗粒的形状特征去除不希望的颗粒。

该子模板中的其它组用于分割接触颗粒、查找颗粒轮廓、检测圆形颗粒。

Analysis—分子组,用于分析灰度和二值图像内容的程序模块。

这些程序用于计算灰度图象的直方图和灰度统计信息,提取图像中任意维度上的像素信息和统计信息,以及检测和测量二值图像中的颗粒。

ColorProcessing—彩色处理组,分析和处理彩色图像的程序分组。

这些程序用于计算彩色图像的直方图;为彩色图像应用查找表;改变彩色图像的亮度、对比度、伽马信息,以及阈值。

其中的一部分使用彩色匹配处理比较不同图像或不同区域的彩色信息。

Operators—图像基本算数和逻辑运算程序模块组。

其中一部分用于图像与图像或常数的加、减、乘、除。

该子模板的另一部分进行逻辑运算-如AND/NAND,OR/NOR,XOR/XNOR—以及图像之间或常数的像素比较。

另外,这个子模板中的一个程序允许利用掩码操作选择图像中的一个区域。

FrequencyDomain—图像频域分析处理程序模块组。

使用这些程序可以使用二维快速付利叶变换(FFT)将图像从空域转换到频域,以及利用反FFT将频域变换到空域。

这些程序模块还可以提取复数图像的幅度,相位,实部和虚部。

另外,这些程序模块还可以将复数图像变换成复数二维矩阵,或相反。

该子模板中的程序模块也可以进行一些基本复数图像间以及复数图像与常数间的算术运算-如加、减、乘、除运算。

最后,其中的一些程序模块可以进行频域的滤波。

机器视觉(MachineVision)

机器视觉函数是一些高级程序模块,用于简化常用的机器视觉任务。

SelectRegionofInterest—选择关注区程序模块组,用于选择关注区、在图像窗口上画特殊的关注区,以及使用非常少的编程返回关注区信息。

CoordinateSystem—坐标系统分组,用于发现与图像中物体相关的坐标系统。

利用这些程序模块发现坐标系统,即可以用于边沿检测也可以用于模式匹配。

还可以利用这个坐标系统从其他机器视觉程序中进行测量。

CountandMeasureObjects—计数和测量物体组,该程序模块可以通过阈值将图像分割成孤立的对象,然后查找并测量这些对象的特性。

该程序模块还可以在测量时忽略未知的对象。

MeasureIntensities—测量强度程序模块组,用于测量一个点上的像素密度或者一个线或一个矩形区域内的像素密度统计。

MeasureDistances—测量距离程序组,两条纵向边沿之间的最小和最大水平距离,或者两条横向边沿之间的最大和最小垂直距离。

LocateEdges—边沿查找程序组,查找垂直、水平、和圆形边沿。

FindPatterns—AVIthatlearnsandsearchesforapatterninanimage.

SearchingandMatching—搜索和匹配程序组。

用于在灰度和彩色图像中建立和搜索模式。

该子模板包括一个可以在二值图像中搜索制定形状对象的程序。

Caliper—卡尺,一组用于在图像的不同断面查找边沿的程序模块。

使用这些程序可以沿着一条线、矩形区域(耙子)中的一组平行线、圆形区域(同心耙)中的一组平行同心线,或者圆形区域(轮子)中的一组辐射线查找边沿。

还可以适用这里的程序查找图像中满足一定条件的对边。

AnalyticGeometry—分析几何程序组,用于对在图像中一个点集中做分析几何运算。

这些程序适用于图像中线、圆、椭圆的点集;计算一个点集代表的多边形的面积;测量点之间的距离;计算点所代表的线之间的夹角。

该子模板中的程序还可以实现诸如查找两条线的交点以及查找两条线夹角的等分线等运算。

OCR—光学字符识别程序组,用于光学字符识别和图像的区域检验。

Classification—分类程序组。

根据形状或用户定义的特征向量对二值对象进行分类。

InstrumentReaders—设备读取程序组。

用于快速开发需要从7段代码显示、计量仪表、指针、一维条码、二维条码中读取信息的程序开发。

Inspection—检测程序组。

将图像与一个标准模板对比。

快速视觉(VisionExpress)

VisionExpressVis用于快速开发常用的图像采集和处理应用。

VisionAcquisition—视觉获取,是一个ExpressVI,可以方便的配置用于获取来自模拟、数字、相机连线、IEEE1394以及GigE版本相机的图像。

说明:

必须安装NIVisionAcquisitionSoftware才能访问VisionAcquisitionExpressVI。

VisionAssistant—视觉助手。

利用NIVisionAssistant可以在LabVIEW 环境中完成一些常用的图像处理任务。

如何创建NIVision应用

下面的图说明了利用NIVision建立应用程序的步骤。

第一个图描述设计NIVision程序的一般步骤。

第一个图中最后一步的第2,3项,在第二个图中扩充。

可以使用最后一步的项目组合来建立NIVision应用。

 

NIVisionforLabVIEW基础

(二):

准备测量图像  

2013-04-1217:

34:

33|  分类:

 默认分类|字号 订阅

本节介绍如何建立图像系统,采集和显示图像,分析图像,以及为进一步处理准备图像。

建立图像系统

在开始获取、分析、处理图像之前,必须先建立图像系统。

建立图像系统的方法取决于图像环境以及分析和处理的需要。

图像系统应该产生足够高的质量以能够从图像中获取信息。

搭建图像系统的完整步骤如下。

根据给定的颗粒限制以及被检测物体的尺寸,确定设备类型。

参考NIVision概念手册中第三章,系统设置与校准 。

确保相机传感器足够大以满足对最低分辨率的要求。

确保镜头景深足够高以保证焦点内的所有物体都不会因为镜头而畸变。

还要确保镜头的焦距满足需要。

确保光照能够提供被检测物体与背景之间有足够的对比度,一便从图像中获取信息。

将相机摆放在与被测物体垂直的位置。

如果相机获取的物体的图像带有角度,就会产生透视误差。

即便可以通过软件补偿这些误差,NationalInstruments还是建议采用垂直的角度以获得最精确的结果。

选择一个满足需要的图像采集设备。

NationalInstruments提供了许多图像获取设备,例如模拟的彩色和单色设备以及数字设备。

更多有关NI图像采集设备的详细信息,请访问:

为图像采集设备配置驱动程序软件。

如果拥有一台NI图像采集设备,可以通过Measurement&AutomationExplorer(MAX)配置NI-IMAQ或NI-IMAQdx驱动程序。

在桌面上双击Measurement&Automation图标打开MAX。

详细信息参见Measurement&AutomationExplorerHelp。

校准图像系统

建立图像系统后,可以校准系统,为像素坐标指定实际的坐标,补偿图像系统中固有的角度和非线性误差。

像机与被测物体不垂直发生透视误差。

非线性失真可能来自像机镜头畸变。

透视误差和镜头畸变导致出现扭曲的图像。

这种失真替代了图像中的信息,但并不一定是破坏映像中的信息。

如果仅仅希望为像素坐标指定实际的坐标使用简单校准。

如果需要补偿透视误差和非线性镜头扭曲使用透视和非线性扭曲校准。

创建图像

使用IMAQCreate程序建立一个引用图像。

建立图像时,要制订下列图像数据类型之一:

Grayscale(U8,default)—8-位无符号

Grayscale(U16)—16-位无符号

Grayscale(I16)—16-位有符号

Grayscale(SGL)—浮点

Complex(CSG)—64-位复数

RGB(U32)—32-位RGB

HSL(U32)—32-位HSL

RGB(U64)—64-位RGB

如果需要可以多次执行IMAQCreate建立多个图像,但所创建的每个图像都需要唯一的名称。

通过分析预期的应用程序确定所需的图像个数。

依据是程序的不同的处理阶段及是否需要为每个处理阶段后保持原始图像。

说明 如果打算在图像上使用滤波或颗粒分析程序,必须保证图像有合适的边沿尺寸。

默认的边沿尺寸为三个像素。

当创建图像时,NIVision建立了一个内部的图像结构以保存图像的属性,如名称和边沿尺寸。

然而,此时没有为图像像素分配内存。

NIVision程序在图像尺寸修改时自动分配一定量的内存。

例如,采集和重取样程序改变图像尺寸所以它们会为图像像素分配适当的内存。

IMAQCreate的输出是一个图像结构的引用。

可将该引用作为输入提供给所有NIVison函数的子程序。

开发期间,可能需要在运行时验证图像的内容。

使用LabVIEW图像探针可以在运行期间察看图像的内容。

要建立探针,右击图像连接线,选择Probe即可。

许多属于NIVision库的程序都需要一个或多个图像引用。

所需的图像引用的数量取决图像处理函数和希望使用图像的类型。

分析图象的NIVision模块不修改只需要一个图像引用输入的内容。

处理图像内容的模块可能要求一个引用作为源图像和一个目标图像,或者模块有一个可选的目标图像。

如果不能提供源图像,模块会修改源图像。

在应用程序的最后,利用IMAQDispose模块释放所创建的图像。

输入输出合并

根据模块完成的功能类型的不同,输入输出可能会产生不同的合并。

可以利用这种灵活性决定要处理那个图像以及在哪里保存结果图像。

如果没有膜表图像连线,那么使用源图像并传递给目的输出。

下面的图描述了NIVision中一些模块的接线板。

图象分析

下面的连线板仅用于分析图像的模块,所以既不改变图像尺寸也不改变内容。

这种操作的例子包括颗粒分析和直方图计算。

图像遮罩

下面的连线板介绍了图像遮罩。

ImageMask 输入端表明处理和分析是依赖与另外一个图像的内容:

ImageMask。

仅当ImageMask中对应的像素不为空时Image中的像素才被处理。

如果一个ImageMask的像素是0,对应的Image 像素不会被改变。

说明 除了IMAQ定量模块之外,所有的NIVision程序的图像遮罩都必须是8-bit的图像,IMAQ定量模块支持8-bit和16-bit的图像遮罩。

如果要对整幅图像进行处理或分析,就不要连接ImageMask输入端。

将同一个图象既连接到Image 的输入也连接到ImageMask 的输入,与将ImageMask 的输入端开放不连的效果是一样的,除非是Image 必须是一个8-bit的图像情况下。

图像填充

下面的连线板用于完成图像填充的程序。

这类操作的例子包括读取文件,从NI图像采集设备采集图像,或者将一个二维矩阵转换成图像。

这类模块可能修改图像的尺寸。

图像处理

下面的连线板用于处理图像的模块。

这种连接器是NIVision中最常见的。

ImageSrc输入端接收要处理的图像。

ImageDst 输入端可以接收另一个图像或者是源图象,取决于使用的目标。

如果两个不同的图像连接到两个输入端,那么源ImageSrc 图像不被修改。

如下图所示,如果ImageDst 和 ImageSrc 输入端接收同一个图像,或者ImageDst不连接,处理过的图像被放到源图像,而原图像数据丢失。

ImageDst 输入端是接收处理结果的图像。

根据模块功能的不同,即可能与源图像相同,也可能不同。

各个模块的介绍都包括可以连接到Image 输入端的图像类型。

连接到ImageDst 的图像根据源图像调整大小。

算术与逻辑运算

下面的连线板用于在两个图像间进行算术或逻辑运算的模块。

目标图像需要两个源图像存在。

可以在两个图像A和B之间完成一个运算,然后把结果存放到另一个图像或者是ImageDst中,或者存放到两个源图像之一A或B中。

在后一种情况下,可以认为源数据在处理发生之后就没用了。

下面的合并在这种接线板中是可能的。

左面的接线板中,三个图像都不同。

ImageSrcA 和 ImageSrcB 在处理后原封不动,运算的结果存放到ImageDst中。

中间的连线板中,ImageSrc A 也接到了ImageDst,所以接收到了运算的结果。

在这种运算中,ImageSrcA的原数据被覆盖。

右边的接线板中,ImageSrcB 接收运算的结果,其原数据被覆盖。

许多两个图像之间的运算要求具有相同的类型和大小。

然而,算术运算可以在两个不同类型的图像间进行。

采集或读取图像

∙创建了图像引用之后,可以通过三种途径将图像采集到图像系统中。

通过图像采集系统中的相机采集图像,从计算机中存储的文件装载图像,或者将存放在二维矩阵中的数据转换为图像。

采集图像、从文件装载图像或从二维矩阵转换图像的程序模块自动地为图像数据分配适当的内存空间。

利用NationalInstruments图像采集设备可以采用以下方法之一采集图像:

∙1.使用IMAQSnap(块照)程序采集单幅图像。

调用该程序时,将初始化图像采集设备,并采集下一个视频帧。

该模块用于单一的采集程序,主要是编程方便。

1.2.通过抓拍连续采集图像。

抓拍功能实现了在一个缓冲区上连续循环采集。

抓拍功能用于采集高速图像。

IMAQGrabSetup用于启动采集,IMAQGrabAcquire用于返回当前图像的一个拷贝,IMAQStop用于停止采集。

2.

3.3.IMAQSequence用于采集固定数量的图像。

IMAQSequence一张接一张的采集图像直到达到要求的数量。

如果只采集某些特定的图像,可以为IMAQSequence提供一张表,描述在采集到每帧后跳过的帧数。

说明 在完成图像采集后,必须使用IMAQClose或者IMAQdxCloseCamera释放分配给图像采集设备的资源。

IMAQReadFile用于打开并读取计算机中存储的文件数据到图像引用中。

可以读取以标准格式存储的图像,如BMP,TIFF,JPEG,JPEG2000,PNG,和AIPD,或则制定的非标准格式。

通常,软件会自动将像素转换成所传递的图像类型。

IMAQReadImageandVisionInfo用于打开图像文件所包含的附加信息,如校准信息,用于模式匹配的模板信息,或者蒙板信息。

有关模式匹配模板和蒙板的内容,参见完成机器视觉任务 。

也可以使用IMAQGetFileInfo读取图像属性-图像尺寸,像素深度,推荐的图像类型,以及校准单位,而不用实际读取全部图像数据。

IMAQAVIOpen 和IMAQAVIReadFrame 用于打开和读取存放在计算机中的AVI文件,并传送到图像引用中。

NIVision自动将像素转换成所传递的图像类型。

说明完成AVI读操作后,必须使用IMAQAVIClose 释放分配给AVI文件的资源。

IMAQArrayToImage 用于将二维矩阵转换成图像。

也可以是用IMAQImageToArray 将图像转换成LabVIEW的二维矩阵。

显示图像

LabVIEW中有两种显示图像的方法。

可以利用外部现实函数模版中的外部显示程序模块在外部窗口中显示图像,也可以Vision控件模板中的ImageDisplay 控件将图像直接显示在前面板上。

外部窗口显示

在外部窗口显示图像示,使用IMAQWindDraw 。

最多可以在16个外部窗口中显示图像。

IMAQWindSetup 用于配置每个外部窗口的外观。

例如,可以决定窗口是否需要滚动条,是否可变化大小,或者是否有标题栏。

也可以使用IMAQWindMove 将尾部图像窗口定位在监视器的一个特定位置。

说明外部图像窗口不属LabVIEW面板。

他们直接由NIVision管理。

通过将调色板应用给窗口,可以将调色板用于显示灰度图像。

IMAQGetPalette用于获得预先定义的调色板。

例如,如果要显示二值图像(一种含有特殊像素值得图像,内容像素值为1,背景的像素值为0),可以使用预先定义的二值模版。

关于调色板的内容,参见NI视觉概念手册。

说明 在程序的最后,必须使用IMAQWindClose关闭所有打开的外部窗口。

图像显示控件

ImageDisplay 控件用于在LabVIEW前面板中显示图像。

如下图所示。

在前面板上点右键并选择Vision ,可以找到ImageDisplay控件。

1显示区域

3关注区工具选项板

2图像信息显示器

4滚动条

要想显示图像,在后面板中将NIVision模块的图像输出连接好,如下图所示。

ImageDisplay控件包含以下元素:

显示区域—显示图像。

图像信息显示器—显示图像的相关信息以及当前所画的关注区的信息。

关注区工具选项板—包括绘制关注区工具、移动、缩放工具。

与外部显示窗口不同,每个图像显示控件都有自己的工具集。

滚动条—允许移动显示区中的图像。

设计期间,可以重新安排控件元素的布局可以定制控件的外观,通过快捷菜单,或者选择控件并点击Edit?

CustomizeControl 可以配置属性。

运行期间,可以通过属性节点定制控件的许多部分。

说明不是所有的设计期间的功能都在运行时可用。

要想建立属性节点,在控件上右击鼠标并选择Create?

PropertyNode。

单击属性节点就可以看到可以设置的属性。

图像显示控件特有的属性出现在列表的尾部。

下面的列表介绍部分图像显示控件可用的属性:

快照模式(SnapshotMode)—决定控件建立一个图像的拷贝还是使用图像的引用。

当允许快照模式时,如果检测图像在应用程序中后来变化了,图像显示控件仍然显示图像显示控件连接成功时所提供的图像。

允许快照模式可能会降低程序的运行速度,因为控件要为图像产生拷贝。

当需要每次都要显示图像的快照是,允许该属性。

如果需要快速显示结果时,禁用该属性,例如在抓拍采集期间。

快照模式属性默认是禁止的。

说明为了使图像显示控件直接刷新图像,可以使用RefreshImage方法。

 要创建方法,右击控件,并选择Create?

InvokeNode。

 点击InvokeNode可以看到可用的方法。

图像显示控件特殊的方法出现在快捷菜单的底部。

调色板(Palette)—决定图像显示控件使用哪个调色板显示图像。

可以为控件配置预定义调色板或自定义调色板。

使用UserPalette属性节点设置自定义调色板。

也可以在运行时右击图像控件改变控件的调色板或图像探针。

最大轮廓数(Ma

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2