购买

¥20.0

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 NI Vision for LabVIEW 基础

NI Vision for LabVIEW 基础.doc

NI Vision for LabVIEW 基础

教育文库
2018-11-22 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《NI Vision for LabVIEW 基础doc》,可适用于IT/计算机领域

NIVisionforLabVIEW基础(目录)::标签:LabView机器视觉原创作品允许转载转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http:guosirblogctocom目录NIVISION简介NIVision控件模板NIVision函数模板如何创建NIVision应用准备测量图像建立图像系统校准图像系统创建图像采集或读取图像显示图像加入校准信息分析图像改善图像进行灰度和彩色测量定义关注区测量灰度统计数据测量彩色统计数据进行颗粒分析创建二值图像改善二值图像进行颗粒测量完成机器视觉任务检测物体定位设置搜索区域查找测量点将像素坐标转换成现实坐标进行测量辨别被测部件检查图像的缺陷显示结果校准图像透视和非线性畸变校准SimpleCalibrationSaveCalibrationInformationAttachCalibrationInformation在LabVIEW实时模块中使用NIVisionOverviewRealTimeSystemComponentsSoftwareInstallationImageDisplayDeterminisminRealTimeApplicationsImageFilesDeploymentTroubleshooting NIVisionforLabVIEW基础(一):NIVision简介::标签:LabView机器视觉原创作品允许转载转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http:guosirblogctocom NIVision控件模板Vision控件模板位于LabVIEW控件模板的最顶层由一下元素组成:IMAQImagectl该控件是一个类型定义用于声明图象类型的数据。在VI的前面板中使用该控件代表图象类型数据。例如使用该控件作为一个子程序的输入或输出使调用成成可以将一幅图像传送给子程序。图像显示(ImageDisplay)该控件用于在LabVIEW中直接显示图像。也可以利用该控件创建关注区域(ROIs)。图像显示控件提供标准和D版两种外观。IMAQ视觉控件(IMAQVisioncontrols)这里的控件用于将NIVision的程序控件直接加入入用户自己的程序中获得相应的功能。机器视觉控件(MachineVisioncontrols)这MAQRejectBorder模块用于去掉接触图像边沿的颗粒。当觉得接触到图像边沿颗粒的信息不完整的时候可以去掉这些颗粒。IMAQRemoveParticle模块用于去掉不关心的大、小颗粒。还可以使用IMAQMorphology模块中的Erode,Open,和POpen函数去除小颗粒。与IMAQRemoveParticle模块不同这三个函数改变剩下的颗粒的大小和形状。IMAQMorphology的hitmiss函数用于定位像素的颗粒配置颗粒配置是利用一个结构化元素定义的。根据结构化元素的配置hitmiss函数可以定位到单个孤立的像素交叉形或长条形沿着颗粒边缘的右角形以及其它用户定义的形状。有关结构化元素的详细内容参见NIVision概念手册第章二值几何。如果对需要保留或去除的颗粒的形状特征足够了解可以使用IMAQParticleFilter模块来过滤掉不感兴趣的颗粒。分割接触的颗粒使用分界线变换和二值几何可以将图像中的接触颗粒分割开。使用分界线变换IMAQDanielsson模块用于奖二值图像变换成一个灰度距离图其中每个颗粒像素被赋给一个灰度级值。等于它到颗粒边缘的最短欧几里得距离。将IMAQWatershedTransform模块应用于这个距离图就可以找到区域分割线。使用IMAQMask模块把分界线重叠在原始图像上。有关使用分界线变换的详细内容参见NIVision概念手册第章图像分割。使用二值几何可以使用IMAQSeparation模块或者使用IMAQMorphology模块的erosion或open函数来分割接触的物体。IMAQSeparation模块是一个高级程序它能分割颗粒而不改变其形状。而erosion和open运算则改变所有颗粒的形状。说明与侵蚀、分界线变换和开放运算(erosion,watershedtransform,oropen)相比IMAQSeparation是一种耗时的运算。如果运算速度是应用程序中的一个考量可以考虑其他某种方法而不使用分割运算。改进颗粒形状IMAQFillHole模块用于填补颗粒中的空洞。IMAQMorphology模块用于对颗粒进行一系列运算。可以使用Open,Close,POpen,PClose,和AutoM运算来平滑颗粒的边缘。Open和POpen通过去掉细小的峡缝来平滑颗粒的边缘而Close是加宽峡缝。Close和PClose用于填补颗粒中的小孔。AutoM去掉峡缝并填孔。关于这些运算的详细内容参见NIVision概念手册第章二值几何。进行颗粒测量在生成了二值图像并进行改进之后就可能对颗粒进行测量。NIVision可以返回非校准或校准的真实单位像素测量值。通过这些测量值可以确定颗粒的位置和它们的形状特征。下面的模块用于颗粒测量:IMAQParticleAnalysisReport该模块返回图像中的颗粒数和一个报告数据包括个最常用的测量值包括颗粒面积边界矩形质量中心等。IMAQParticleAnalysis该模块返回最多个可选择的颗粒测量值。IMAQParticleAnalysis模块测量值的列表参见NIVision概念手册第章颗粒测量。NIVisionforLabVIEW基础(五):完成机器视觉任务::标签:基础任务Vision机器视觉LabVIEW这一节介绍如何完成常用的机器视觉任务。最常用的检测任务是测试图像中有还是没有某个部件并测量部件的大小以确定是否满足标准。测量是基于图像中物体所表现出来特征。图像处理算法通常利用图像中包含的信息进行分类如边、面或形状。不同类型的机器视觉算法影响并提取一种或多种信息。边缘检测及其衍生技术如耙子同心耙和辐条(rakes,concentricrakes,andspokes)用于图像中所表现出了边。他们可以精确地定位物体边缘的位置。可以使用边缘检测来进行部件宽度一类的测量这一技术被称为卡尺。也可以综合多条边来计算交点、投射、适合的园或椭圆。模式匹配算法使用边和样板。模式匹配可以精确的定位所检测部件的基准位置或特性。可以综合使用这些位置来计算长度、角度和其它的测量指标。测量指标的健壮性以来与图像采集条件的稳定性。传感器分辨率、光照、光学、震动控制、工件夹具以及一般环境都是图像建立的关键因素。图像采集环节的所有元素直接影响测量的精度。下图介绍了机器视觉过程中的基本步骤。说明图中虚线框起来的内容是可选步骤。检测物体定位典型的机器视觉应用中是从关注区中提取测量指标而不是从整个图像中。要使用这种技术关注物体的各个部分都要出现在所定义的关注区中。如果需要处理的图像中被测物体始终保持在相同的位置和方向那么直接定义关注区就可以了。参见本文中关于选择ROI一章。通常被测物体会在需要处理的图像中发生相对位移或旋转。发生这种情况时那么关注区就需要跟所关注的物体的所有部分一起移动或旋转。对于要随物体一起移动的关注区需要定义一个相对于参考图像中物体的参考坐标系统。在测量处理期间当需要处理的图像中的物体出现移动和旋转时,坐标系统也随物体一起移动。这个坐标系统称为测量坐标系统。测量模块利用相对于参考坐标系统的测量位置自动地将关注区移动到正确的位置。关于坐标系统参见参见NIVision概念手册第章维度测量。可以利用边缘检测或模式匹配建立一个坐标变换。建立坐标变换的边缘检测和模式匹配模块的输出结果是原点、角度和坐标系统的轴向。某些机器视觉模块采用这一输出结果并自动调整检测区域。也可以通过编程利用这些输出结果来移动做相对于物体的检测区域。利用边缘检测创建坐标变换可以采用两种边缘检测技术创建一个坐标变换。IMAQFindCoordSys(Rect)模块利用一个矩形区域定义一个参考坐标系。IMAQFindCoordSys(Rects)模块使用两个独立的矩形区域定义一个坐标系。使用边沿检测构建一个坐标变换的完整步骤如下。指定一个或恋歌矩形区域。a)如果使用IMAQFindCoordSys(Rect)模块指定一个包含两个正直部分的关注区如下图所示。这个矩形区域必须足够大以包含全部图像中所要检测的边缘。 坐标系搜索区域坐标系原点物体边缘测量区域b)如果使用IMAQFindCoordSys(Rects)模块指定两个矩形关注区每个区域包含一个分开的、正直物体边缘如下图所示。这两个边不能平行。这两个矩形区域必须足够大以包含全部图像中所要检测的边缘。 第一搜索区域坐标原点第二搜索区域测量区域选择用于定位物体上边缘的参数。选择坐标轴方向。选择希望覆盖在图像上的结果。为模块选择模式。第一次建立坐标变化将模式设置为FindReference。要为其后的图像更新坐标变换将该模式设置为UpdateCoordSys。使用模式匹配构建一个坐标变换使用模式匹配可以构建一个坐标变换。IMAQFindCoordSys(Pattern)基于参考属性的位置定义一个参考坐标系。该技术用于检测物体没有正直边或不连续边的情况。使用模式匹配构建一个坐标变换的完整步骤如下:说明如果使用旋转不变模式匹配使用该技术可以使物体在图像中旋转°。定义代表用作参考属性的物体的一部分的模板。定义一个期望查找模板的矩形搜索区选择匹配模式。当检测图像中所要的样板发生旋转时选择RotationInvariant否则选择ShiftInvariant。选择需要覆盖在图像上的结果。为模块选择模式。第一次建立坐标变化将模式设置为FindReference。要为其后的图像更新坐标变换将该模式设置为UpdateCoordSys。选择构建坐标变换的方法下图所示的流程图引导在应用程序中选择最佳的建立坐标变换的方法。设置搜索区域在图像中选择关注区,以限制处理和检测的区域。可以通过交互式或编程来定义关注区。交互式定义区域下面的表列出了特定的测量模块所使用的关注区。关注区测量模块旋转矩形IMAQFindPatternIMAQClampHorizontalMaxIMAQClampHorizontalMinIMAQClampVerticalMaxIMAQClampVerticalMinIMAQFindEdgeIMAQFindStraightEdges环形IMAQFindCircularEdgeIMAQFindConcentricEdge程序化定义区域当设计一个自动化应用程序是需要程序化定义关注区。可以有两种方法:l制定ROI描述元素。l提供描述要定义的区域的基本参数来制定区域。可以通过提供左上角坐标右下角和旋转角度来指定一个旋转矩形。可以通过提供中心坐标内径外径起始角结束角来指定一个环形。可以通过设置x和y坐标来指定一个点。可以设置起点和终点来指定一条线。查找测量点在设置了检测区域之后就能够定位基本测量的点。可以使用边缘检测、模式匹配、彩色模式匹配和色彩定位来定位测量点。使用边缘检测获得特征图像的非连续性通常表现为像素明暗度的突然改变。使用边缘检测工具可以识别和定位图像中剧烈的不连续处。查找线和圆如果想沿着物体的边沿查找点并找到描绘这条边的线使用IMAQFindEdge,IMAQFindStraightEdges,和IMAQFindConcentricEdge模块。IMAQFindEdge和IMAQFindStraightEdges模块基于矩形搜索区域查找边缘如下图所示。IMAQFindConcentricEdge模块基于环形搜索区域查找边缘。 搜索区域检测到的边缘点搜索线与边缘点所对应的线如果想要沿着圆形边缘查找点并找到最适合边缘的圆如下图所示使用IMAQFindCircularEdge模块。 环形搜索区域检测到的边缘的点搜索线与边缘点所对应的圆IMAQFindEdge和IMAQFindConcentricEdge模块查找物体边缘和一组搜索区域中的搜索线之间的交叉点。为模块指定用于检测边缘的线的间隔。检测模块基于他们对比度、宽度和倾斜度来确定交叉点。软件计算出紧贴外缘的最适合的线或者通过所找到点的最适合的圆。检测模块返回所找到的边的坐标。沿一个搜索轮廓线查找边缘点IMAQSimpleEdge模块和IMAQEdgeTool模块用于沿着一个轮廓查找边缘点。可以沿着轮廓查找第一个边缘最后一个边缘或所有的边缘。当图像中包含很少的噪声并且物体和背景明显不同时使用IMAQSimpleEdge模块。否则使用IMAQEdgeTool模块IMAQSimpleEdge模块要求输入沿着搜索轮廓的点的坐标。使用IMAQROIProfile模块可以从轮廓的RO描述中获得坐标。如果有了一条直线使用IMAQGetPointsOnLine模块来获得线上的点而不使用ROI描述。IMAQROIProfile和IMAQGetPointsOnLine基于对比度和斜度确定边缘点。如果需要可以指定查找边缘点的子像素精度。沿着多个搜索轮廓查找边缘点IMAQRake,IMAQSpoke,和IMAQConcentricRake模块用于沿着多个搜索轮廓查找边缘点。这些模块需要传入一个ROI描述用于定义搜索区域。IMAQRake作用于一个矩形搜索区域。搜索线被画在与矩形平行的方向。通过指定区域中每条线之间以像素为单位的距离来控制搜索线的数量。对于水平方向的矩形指定从左到右或从右到左的搜索方向。对垂直方向的矩形指定从上到下或从下到上的搜索方向。IMAQSpoke作用于一个环形搜索区域扫描每一条从区域的中心到外缘并落在搜索区域中的线。通过指定每条线之间以度数为单位的角度来控制线的数量。搜索方向指定为从中心向外或者从外沿向中心。IMAQConcentricRake作用于一个环形搜索区域。中心扫描耙(rake)是一个环形区域耙的适配器。边缘检测是沿着搜索区域中出现的与外层圆形边缘同心的扫描线完成。通过以像素为单位指定同心线的径向距离可以控制用于边缘检测的同心搜索线的数量。搜索方向指定为顺时针或反时针。使用模式匹配查找点NIVision中的模式匹配算法用于测量理想化的特征表现成为模板与图像中的可能表现之间的相似度。特征是图像中像素的一个特定的模式。模式匹配返回模板和模板方位的中心位置。利用模式匹配查找图像特征通常需要以下步骤:定义一个参考或基准样本作为模板图像。使用IMAQLearnPattern模块利用参考样本训练模式匹配算法。定义一个图像或图像的一个区域作为搜索区域。较小的搜索区域能减少查找特征的时间。使用IMAQSetupMatchPattern设置容限和参数以指定算法在运行时如何工作。使用IMAQMatchPattern模块在测试图像上测试搜索算法。使用一种排序方法验证结果。定义并创建有效的模板图像一个有效的模板图像是获得最佳结果的关键部分。由于模板代表了所要查找的样本要确保样本的所有特征和唯一特性都要在图像中定义。在建立模板图像的过程中有几个因数是最关键的。这些关键因素包括均匀度细节特征位置信息以及背景信息。均匀度一个旋转均匀的模板如图A所示与一个不均匀的模板相比队旋转的时候有很少的敏感度。一个旋转均匀的模板提供了很好的位置信息而没有方向信息。图B显示了一个旋转非均匀模板。细节特征具有相对粗糙特征的模板如图B所示与图A所示的具有精细特征的模板相比对尺寸和旋转变化有很少的敏感度。然而模型必须包含足够的细节以确定特征。位置信息一个x和y方向具有明显边缘的模板便于定位。图A显示了一个x和y方向都有边缘的模板例子。图B显示了一个仅在x方向有边缘的模板例子。背景信息模板中单一的背景信息有利于改善搜索效率和精度。图A所示的模板包含很少的背景信息。图B所示的模板包含了大量的背景信息可以用于将模板从其它可能的匹配中分离出来。训练模式匹配算法在建立了良好的模板图像之后模式识别算法必须要学习模板的重要特征。IMAQLearnPattern模块用于学习模板。学习的过程依赖于所要完成的匹配类型。如果不期望图像中的模板实例发生旋转或改变大小模式匹配算法必须学习的仅仅是对位移匹配相关的模板信息。然而如果希望匹配任意方向的模板学习过程必须考虑任意方向的可能性。IMAQSetupLearnPattern用于指定要使用哪种学习模式。可以为IMAQLearnPattern提供一个遮罩代表学习算法需要在图像中忽略的像素区域。可以将被测图像中变化的模板区域遮起来以使匹配过程中忽略这个区域使整个模式匹配过程更加有效(Robust)。遮罩必须与模板图像大小相同。如果为IMAQLearnPattern提供一个遮罩该模块仅学习模板中与遮罩中对应像素值为像素。遮罩像素不为的被忽略。如果需要学习整个模板就不要使用遮罩。学习过程通常是很耗时的因为算法试图查找模板的每个特征以便快速、准确地匹配。所选择的学习模式也影响学习过程的速度。学习位移不变的匹配比学习旋转不变得模板要快。为了节省时间也可以使用离线方式训练匹配算法然后使用IMAQWriteFile的实例IMAQWriteImageandVisionInfoFile将模板图像保存起来。定义搜索区域有两个重要因素决定了模式匹配算法的成功与否:精度与速。可以定义一个搜索区域以减少搜索过程中的不确定性。例如如果图像中有多个样板实例而其中只有一个是用于检测任务的额外的样板实例的出现可能产生不正确的结果。为了避免发生这种情况减少搜索区域以使仅仅所需要的样板出现在搜索区中。在图像中定位一个样板所需要的时间即取决于模板的尺寸也取决于搜索区域。减少搜索区域可以减少所需的搜索时间。增加模板尺寸能改善搜索时间但如果这样做如果较大的模板包含的过多的背景信息将较少匹配的精度。在许多检测应用中已经拥有基准位置的一般信息可以利用这一信息定义一个搜索区域。例如在一个标准的元器件安置应用中每个要检测的印刷电路板可能不是以相同的方向放在相同的位置。在各种图像中的印刷电路板位置可能在已知的范围内移动和旋转。图A所示的模板用于定位图像中的PCB。图B所示的图象包含一个想要定位的带有基准的PCB。注意搜索区域是围绕着基准的。如果在匹配过程开始之前就知道PCB图象可能在一个固定的范围内移动或选装分别如图C和D所示就可以将基准的搜索区域限制在图象的一个很小的区域内。设置匹配参数和容限每个模式匹配算法都对图象和机器视觉应用中所使用模式匹配参数做出一些假设。这些假设适用于大多数应用。然而也有一些应用中这些假设并不是最优的。了解特定应用和所要处理的图象在选择模式匹配参数时是非常有有用的。IMAQSetupMatchPattern模块用于设置以下影响NIVision模式匹配算法的参数:匹配模式、最小对比度和旋转角度范围。匹配模式设置匹配模式用于控制模式匹配算法如何处理不同的方向。如果希望有效的匹配相对于模版的方向变化小于±°可以将MatchMode设置为ShiftInvariant(位移不变)。否则将MatchMode设置为RotationInvariant。位移不变匹配比旋转不变更快。最小对比度模式匹配算法忽略所有对比度值低于所设置的最小对比度的图象区域。对比度是一个区域中最小和最大像素值的差异。将MinimumContrast设置为稍低于最低对比度搜索区域的对比度值。设置最小对比度可以潜在地增加模式匹配算法的速度。如果搜索图像整体对比度较高但包含一些低对比度区域设置一个较高的最小对比度值可以排除所有的低对比度图像区域。排除这些区域可以明显地减少模式匹配算法必须搜索的面积。然而如果搜索的图像整体上对比度较低那么就应设置一个较低的最小对比度以确保模式匹配算法能在图像的所有区域中搜索模板。旋转角度范围如果已经知道模板旋转限制在一定的范围内例如在–°和°之间可为该限制信息在RotationAngleRanges空间中提供给模式匹配算法。该信息可以改善搜索时间因为模式匹配算法可以在较小的角度内搜索。有关模式匹配的详细内容参见NIVision概念手册第章模式匹配。在测试图像上测试搜索算法要验证所选择的模板或参考样板是否适合自己的机器视觉应用可以使用IMAQMatchPattern模块在少量图像上测试模板。这些测试图像会反映出机器视觉应用在真实运行条件下所生成的图像。如果模式匹配算法能够在所有情况下都能定位到参考样板说明所选择的是一个好的模板。否则就要改善当前的模板或者选择一个更好的模板知道训练和测试都是成功的。使用分级方法验证结果解读IMAQMatchPattern模块结果的方法取决于应用程序。对于标准的校准应用例如查找晶片基准最重要的信息是位置和最佳匹配部位。使用Matches指标的Position和BoundingBox元素获得位置和匹配部位。在检测应用中例如光学字符检验(OCV)最匹配分值是比较有用的。模式匹配算法返回的匹配分值是原样板与图像中找到的内容匹配紧密度的指标。高分代表一个非常紧密的匹配而低分代表匹配的比较差。分值可以作为一个评判标准以确定打印的字符是否是可以接受的。使用Matches指标的Score元素来获得对应的匹配分值。使用几何匹配查找点NIVision中的几何匹配算法用于在灰度图像中寻找与一个参考样板匹配的模型或模板。几何匹配专门用于寻找具备离散化几何或形状信息的模板。几何匹配查找模板匹配能够忽略光的变化模糊噪声咬合以及几何变换如模板的位移、旋转或比例。几何匹配返回模板的中心位置模板的方向和模板的比例。使用几何匹配查找图像中的特征通常要完成以下步骤。使用一个模板图像定义一个参考或基准的样板。使用NIVision模板编辑器利用参考样板训练几何匹配算法。选择StartAllProgramsNationalInstrumentsVisionTemplateEditor打开NIVision模板编辑器。定义一个图像或图像的一个区域作为搜索区域。小的搜索区域可以减少查找特征的时间。使用IMAQSetupMatchGeometricPattern模块设置容限和参数以指定运行时算法如何工作。使用IMAQMatchGeometricPattern模块在测试图像上测试搜索算法。定义和创建有效的模板图像选择一个有效的模板图像是获得好的结果的决定性的部分。由于模板图像代表所要查找的样板要确保所有重要和独特的特征都被很好的定义在图像中。几何匹配算法是为定位具有良好几何信息的物体而优化的。下面的图线是了具有良好几何或形状信息的模板图像的例子。几何匹配不适合于主要是灰度或纹理信息的模板图像。下面的图显示了没有良好几何信息的模板图像。图A中的模板图像的主要特征是图像中的灰度或纹理信息。图B包含了太多的边缘会急剧地增加几何匹配在图像中定位模板的时间。训练几何匹配算法在建立了一个好的模板图像之后几何匹配算法必须学习模板的重要特征。使用NIVision模板编辑器选择模板中的重要特征。几何匹配使用在图像中查找到的曲线作为用于匹配的基本特征。使用NIVision模板编辑器可以去除模板中的噪声或不重要的曲线并仅保存图像中对定位模板重要的曲线。图A显示了一个面具的图像模板。图B显示了在图像模板中发现的所有曲线。这些图像由若干很适合匹配的曲线构成例如沿着面具边缘的线噪声或不重要的曲线以及编码周围的线和图像中反光区域的线。如果带着不重要的曲线学习模板几何匹配算法会把这些曲线作为必须在有效匹配区中必须查找的重要特征。为了使匹配过程更加可靠应在学习模板之前去掉这些曲线。图C显示了利用NIVision模板编辑器去掉了不重要的曲线之后的用于学习模板的曲线。一旦训练了了模板图像就可以从NIVision模板编辑器中将模板保存到文件中。使用IMAQReadImageandVisionInfo模块可以在程序中读取模板文件。关于训练几何匹配算法的详细内容参见NIVision模板编辑器帮助。设置匹配参数和容限几何匹配算法对机器视觉应用中使用的图像和几何匹配参数作了一定的假设。这些假设适用于绝大多数应用。然而也有一些应用中这些假设并不是最优的。了解特定应用和所要处理的图象在选择模式匹配参数时是非常有有用的。IMAQSetupMatchGeometricPattern模块用于设置以下影响NIVision模式匹配算法的参数:匹配模式、转角度范围咬合范围。匹配模式通过设置控制模式来控制几何匹配算法查找模板的条件。如果希望有效的匹配与模板间的方向变化大于±°将MatchMode中的Rotation选项设置为有效。如果希望尺寸变化范围大于,将MatchMode中的Scale选项设置为有效。如果期望有效的匹配可以部分覆盖或缺失将MatchMode中的Occlusion选项设置为有效。任何一个选项设置为无效或限制它们的范围将减少搜索时间。旋转角度范围如果已知样板限制在一定的范围内例如,在–°和°之间。设置RangeSettings控件中的RotationAngle(度)将这些限制信息提供给几何匹配算法。该信息改善了搜索时间因为几何匹配算法能在更小的角度内搜索样板。比例因子范围当MatchMode的Scale选项有效时几何匹配仅搜索图像中模板出现与否而忽略有效的匹配是否是不同的大小。默认的比例范围是到。如果已知有效匹配的比例范围限制在一定的范围内例如在和之间通过设置RangeSettings控件中的ScaleFactor()选项将这一限制信息提供给几何匹配算法。咬合范围当MatchMode中的Occlusion选项有效时几何匹配搜索图像中模板的有无允许模板的一定比例被遮挡。默认的遮挡范围是到。如果已知有效匹配的遮挡范围限制在一定范围内例如在和之间。通过设置RangeSettings控件中的Occlusion()选项将这一限制信息提供给几何匹配算法。有关几何匹配的更多信息参见NIVision概念手册第章几何匹配。在测试图像上测试搜索算法为了验证所选择的模板或参考样板是否满足机器视觉程序的要求,可以使用IMAQMatchGeometricPattern模块在少量测试图像上对模板进行测试。这些测试图像应该反映出机器视觉程序在实际运行条件下生成的图像。如果几何匹配算法在所有情况下都能找到参考样板,就说明已经选择了一个很好的模板。否则就需要优化当前的模板或者选择一个更好的模板直到训练和测试都成功为止。使用多模板图像如果应用程序需要在目标图像中查找多个模板图像按下列步骤进行。使用定义和创建有效模板图像和训练几何匹配算法所介绍的方法建立和训练每个模板图像。使用IMAQLearnMultipleGeometricPatterns模块将上面的步骤中训练的模板合并到多几何模板中。如果想要离线完成学习过程使用IMAQWriteMultipleGeometricTemplate模块将所生成的多几何模板保存到文件中。使用IMAQReadMultipleGeometricTemplate模块可以使应用程序在匹配处理期间读取多几何模板文件。使用设置破配参数和容限一节介绍的方法定义每个模板如何与目标图像匹配。说明尽管本步骤生成的参数仅用于匹配期间仍然可以在学习阶段将这些参数传递给IMAQLearnMultipleGeometricPatterns模块。将这些参数存储在多几何模板中当保存多几何模板时它们就会存放到文件中。程序读取多几何模板文件时它们将作为多几何模板的一部分在匹配处理期间使用。如果想在匹配处理期间覆盖某些参数可以将要覆盖的参数传递给IMAQMatchMultipleGeometricPatterns模块。使用IMAQMatchMultipleGeometricPatterns模块在测试图像上测试多模板搜索算法以匹配所有模板。该步骤的重要性与在测试图像上策测试搜索算法中解释的相同。使用彩色模式匹配查找点彩色模式匹配算法为在出现彩色的时候提供了一种快速的查找物体的方法。如果图像具有下列质量就可以适用彩色模式匹配:要查找的物体的彩色信息与背景非常不同并且希望在找到图像中物体的精确位置。要查找的物体的灰度特性非常难以鉴别或者与搜索图像中的其它物体非常相像。这种情况下灰度模式匹配可能得出不精确的结果。如果物体具有的彩色信息不同于屏幕中的其它物体那么色彩就为机器视觉软件提供了定位物体的额外信息。彩色模式匹配返回模板的中心位置和模板的方向。适用彩色模式匹配查找图像中的特征采用以下步骤:以模板图像的形式定义一个参考或基准样板。使用IMAQSetupLearnColorPattern模块利用参考样板训练彩色模式匹配算法。定义一个图像或图像区域作为搜索区域。较小的搜索区域可以减少查找特征的时间。将FeatureMode控件设置为ColorandShape。使用IMAQSetupMatchColorPattern模块设置容限和参数以制定算法在运行时如何工作。IMAQMatchColorPattern模块在测试图像上测试搜索工具。使用分级方法验证结果定义和建立好的彩色模板图像选择一个好的模板图像在使用彩色匹配算法获得精确结果的过程中是关键的一步。因为模板图像代表着想要查找的彩色和样本应确保所有的重要和唯一的特征都被定义在图像中。有几个因素是建立模板图像的关键。这些关键因素包括彩色信息、均匀度细节、位置信息和背景信息。有关这些因素的更多信息参见定义和建立有效的模板图像。彩色信息单色的模板比包含许多颜色的模板能为样板提供更好的结果特别是背景或图像中的其它物体。均匀度在两度平面上一个旋转均匀的模板比旋转不均匀的模板对旋转变化的敏感度低。细节特征相对粗糙特征的模板对尺寸变化的敏感度比具有细致特征模型要低。然而模型必须要把包含足够辨认它的细节。位置信息彩色模板的亮度平面包含的x和y方向的明显的边沿,便于定位。背景信息在灰度模式匹配期间单一的背景信息可以改进搜索的性能和精度。这一要求对于彩色模式匹配的彩色信息要求是冲突的因为背景色可能在彩色定位阶段产生干扰。解决这一问题的方法是为灰度模式匹配选择一个具有充分背景信息的模板同时指定在彩色定位阶段要排除的背景色。有关如何忽略色彩的更多信息参见训练彩色模板匹配算法。训练彩色模式匹配算法在建立了一个好的模板图像之后彩色模式匹配算法需要学习模板的重要信息。学习的过程取决于所期望完成的匹配类型。默认情况下彩色模式匹配算法仅从模板中学习与位移不变匹配所必需的信息。然而如果希望让模板在任意方向上匹配学习过程必须考虑任意方向的可能性。使用IMAQSetupLearnColorPattern模块指定使用哪种学习模式。然后使用IMAQLearnColorPattern模块学习模板。排除模板中在搜索阶段不感兴趣的色彩。忽略模板中难于定位的色彩。模板与搜索图像的部分区域仅仅是主色不同可以考虑忽略掉主要的共同色彩以改善性能。通常主色是彩色模板的背景色。IMAQSetupLearnColorPattern模块用于忽略颜色。可以使用IgnoreBlackandWhite控件忽略特定的预定颜色。要忽略其他颜色首先使用IMAQColorLearn学习要忽略的颜色。然后将IMAQSetupLearnColorPattern模块的IgnoreColorSpectra控件设置成结果的色谱。学习算法是很耗时的因为算法要试图找到模板的位移特性以便快速、精确的匹配。但是可以离线训练模式匹配算法并使用IMAQWriteFile模块的实例IMAQWriteImageandVisionInfoFile保存模板图像。定义搜索区域有两个同等重要的因素决定了彩色模式匹配算法是否成功精度和速度。可以定义一个搜索区域以减少无为的搜索过程。例如如果图像中有多个样板的实例且检测任务仅需要一个实例样板其他实例的出现可能产生不正确的结果。为了避免出现这个问题减少搜索区域以使仅将需要的样板留在搜索区内。比如在保险箱检测的例子中使用要检测的保险丝的位置定义搜索区。因为所要检测的保险箱可能不是处于精确的位置或者在图像中的方向与上一个相同所定义的搜索区域应该足够大以适应箱子的位置变化。下图显示了如何为不同的物体选择搜索区域。 Amp保险丝搜索区 Amp保险丝在图像中定位样板所需的时间既取决于样板大小也取决于搜索面积。减少搜索面积可以减少所需的搜索时间。增加模板大小可以改善搜索时间但这样做的话如果更大的模板包含的多余的背景信息会降低匹配的精度。设置匹配参数和容限每个彩色模式匹配算法都会对图像和机器视觉程序中使用的彩色模式匹配参数做出一些假设。这些假设对绝大多数应用是有效的。但是有些应用中算法所使用的假设可能不是最优的。这时就必须修改彩色模式匹配参数。了解应用以及所有处理的图像对选择模式匹配参数是非常有必要的。使用IMAQSetupMatchColorPattern模块设置下列影响彩色模式匹配的参数:色彩感光度、搜索策略、色彩分值权重、忽略颜色、最小对比度以及旋转角度范围。色彩感光度色彩感光度用于控制模板图像中彩色信息的颗粒度。如果背景和图像中的物体包含的色彩与模板图像中的色彩非常相近的话,应适用更高的色彩感光度设置。较高的感光度设置利用非常接近的色调来区分色彩。NIVision中有三个色彩感光度设置:低、中、和高。如果模板中的颜色与背景或不感兴趣的物体的颜色非常不同那么就使用低设置。随着差异的降低应增加色彩感光度。IMAQSetupMatchColorPattern模块的ColorSensitivity控件用于设置色彩感光度。有关色彩感光度的更多信息参见NIVision概念手册第章彩色检测。搜索策略使用搜索策略可以优化彩色模式匹配算法的速度。搜索策略控制用于模板的步长、子采样因子、以及彩色信息比例。可选择的策略如下:Conservative使用一个非常小的步长最小的子采样量和模板中出现的所有彩色信息。保守策略对于在可能降低速度的情况下搜索一个模板是最可靠的方法。说明如果图像中有挨得特别近的多个目标时适用保守策略。Balanced使用挑战型和保守型之间的值。Aggressive使用一个较大的步长许多子采样以及模板中全部的色谱信息。VeryAggressive使用最大的步长最多的子采样以及仅使用模板中主要的色彩来搜索模板。当模板中的色彩非常一致模板与背景有明显的对比而且图像中出现的模板很容易区分时使用该策略。该策略是在图像中查找模板的俄最快速的方法。通过不同的选项试验来确定最好的策略。使用SearchStrategy控件选择搜索策略。色彩分值权重当同时使用色彩和形状信息搜索模板时匹配处理期间产生的色彩和形状分值合并后生成最后的彩色模式匹配分值。色彩分值权重决定色彩分值对于最终彩色模式匹配分值的贡献度。如果模板的色彩信息优于模板的形状信息就将权重设高。例如如果使用的权重算法同时使用色彩和形状信息查找每个匹配然后完全基于它们的色彩分值对匹配进行分类。如果权重是匹配仍然使用色彩和形状信息但他们完全被基于其形状分值分类。使用ColorScoreWeight控件来设置色彩分值权重。最小对比度使用最小对比度可以增加彩色模式匹配算法的速度。彩色模式匹配算法忽略所有灰度对比度值低于最小对比度值得图像区域。使用MinimumContrast控件设置最小对比度。有关最小对比度的内容参见设置匹配参数及容限。旋转角度范围有关旋转角度范围的内容参见设置匹配参数及容限。在测试图像上测试搜索算法有关测试搜索算法的信息参见在测试图像上测试搜索算法。使用彩色定位查找点彩色定位算法为在带有特定颜色的图像中定位一个区域提供了一种快速的方法。在应用程序中使用彩色定位有以下特点:需要带有特定彩色信息图像中区域的位置和数量依赖于区域中的累积的彩色信息而不是彩色的分布信息不要求区域的方向不要求子像素精度的位置不要求区域的形状信息使用彩色定位在图像中查找特征需要完成下列步骤:以模板图像的形式定义一个参考样板。使用IMAQLearnColorPattern模块利用参考样板训练彩色定位算法。定义一个图像或图像区域作为搜索区。小的搜索区可以减少发现特征的时间。将IMAQSetupLearnColorPattern模块的FeatureMode控件设置为Color。使用IMAQSetupMatchColorPattern模块设置容限和参数以指定运行时算法如何工作。使用IMAQMatchColorPattern模块在测试图像上彩色定位算法。使用分类算法验证结果。可以使用IMAQWriteFile模块的IMAQWriteImageandVisionInfoFile实例保存模板图像。将像素坐标转换成现实坐标通过边缘检测和模式识别得到的测量点是以像素为坐标的。如果需要以现实单位进行测量需要使用IMAQConvertPixeltoRealWorld模块将像素坐标转换成像素坐标。进行测量可以从图像或在图像中检测到的点中进行不同类型的测量。进行距离测量MeasureDistances模块用于测量搜索区中一个矩形中的两个边之间的间距。为监测边和搜索区内要查找边的搜索线之间的间隔指定参数。说明使用IMAQSelectRectangle模块为卡尺模块生成一个有效的输入搜索区。第一个模块使用排队函数监测所测物体边缘的点。其它的模块计算沿着取景框(rake)的每条搜索线上的各个测到的边上的点之间的距离。这些模块返回垂直或水平方向上的最大或最小距离并输出它们找到的所有边缘点的坐标。下面的列表介绍可用的卡尺模块:IMAQClampHorizontalMax测量一个矩形搜索区域内两条边之间的最大水平间距。IMAQClampHorizontalMin查找两条垂直边之间的最小水平间距。IMAQClampVerticalMax查找两条水平边之间的最大间距。IMAQClampVerticalMin查找两条水平边之间的最小间距。IMAQPointDistances模块用于计算一个点矩阵中连续点对之间的距离。可以使用查找测量点中介绍的任何一种特征检测方法从图象中获得这样的点。进行分析几何测量使用以下模块可以对在图像中检测到的点进行几何测量:IMAQFitLine将点集拟合成一条线并计算出线的等式。IMAQFitCircle将至少有三个点的点集拟合成一个圆并计算其面积周长和半径。IMAQFitEllipse将至少六个点的点集拟合成一个椭圆并计算其面积、周长及长轴和短轴的长度。IMAQLinesIntersection计算用起点和终点表示的两条线的夹角和交叉点。IMAQPerpendicularLine查找一个点到一条线之间的正交线和距离。IMAQBisectingLine查找两条线之间的夹角等分线。IMAQMidLine查找一点与一条线之间的平行中线。IMAQPolygonArea计算顶点表示的一个多边形的面积。进行仪表阅读测量下列模块用于针对从仪表和LCD获得的数值进行测量:IMAQGetMeter和IMAQGetMeter模块用于校准需要阅读的仪表或量器。IMAQGetMeter利用指针的起始位置和满量程位置校准仪表。该模块计算指针的基点位置和针尖轨迹的弧。IMAQGetMeter利用仪表上的三个点校准仪表:指针的基点出于起始位置的针尖和处于满量程位置的针尖。该模块计算出针尖覆盖的弧上点的位置。IMAQReadMeter模块利用基点和针尖轨迹的弧上的点矩阵读取指针的位置。IMAQGetLCDROI模块计算LCD或LED中包围每个数字的关注区。为了找到每个数字区域显示器的每个段都必须显示。IMAQReadSingleDigit模块用于读取LCD或LED的一个数字。IMAQReadLCD模块用于读取LCD或LED的多个数字。辨别被测部件这设置了检测区域之后除了进行测量还可以使用分类来辨认部件、光学字符识别以及条形码阅读。分类样本使用分类通过将未知物体的明显特征与已知物体类型的概念化表征相比较来辨别物体。与分类有关的标准应用如下:Sorting各种形状物体的分选。例如将传送带上的不同机械零件分选到不同的箱子中。Inspection通过给每个物体赋予一个辨认分值来检测物体并剔除不能与训练集中的成员紧密匹配的物体。在进行物体分类之前必须使用NI分类训练界面通过物体样本的训练分类器。选择StartAllProgramsNationalInstrumentsVisionClassificationTraining登录NI分类训练接口。在训练了需要分类的物体样本以后适用以下模块对物体进行分类:在代码的初始化部分适用IMAQReadClassifierFile木块读取一个使用NI分类训练接口创建的分类器会话。IMAQClassify模块用于将被检测图像的关注区内的物体分类成NINI分类训练接口建立的类别的一种。IMAQDisposeClassifier模块用于释放分类器会话所使用的资源。下图显示一种标准分类模块的LabVIEW伪代码。 读取一个分类器文件分类样本类别获取和预处里图像释放分类器停止定位要分类的样本转到训练分类器文件 读取字符OCR用于读取图像中的文字或字符。检测应用中OCR通常用于鉴别或分类零部件。在读取图像中的文字或字符之前必须使用NIOCR训练接口利用字符样本训练OCR会话。选择StartAllProgramsNationalInstrumentsVisionOCRTraining登录NIOCR训练接口。在训练了所要读取的样本之后利用以下模块读取字符:在代码的初始化部分使用IMAQOCRReadCharacterSetFile模块读取利用NIOCR训练接口创建的一个会话。IMAQOCRReadText模块用于读取被测图像关注区内的字符。IMAQOCRDisposeSession模块用于释放OCR会话所适用的资源。读取条码使用条码阅读模块可以读取一维条码数据阵列码QR码和PDF码中编码的值。读取一维条码IMAQReadBarcode模块读取一维条码中的编码值。使用定位要检测的物体和设置搜索区域两节中介绍的一种方法定位图像中的条码然后将位置的关注区描述传递给IMAQReadBarcode模块。使用BarcodeType控件指定一种条码类型。NIVision支持下列一维条码类型:Codabar,Code,Code,Code,EAN,EAN,Interleavedof,MSI,UPCA,Pharmacode,和RSSLimited。读取数据阵列码IMAQReadDataMatrixBarcode模块用于读取数据阵列码中的编码值。该模块能自动地为程序确定合适的搜索参数。但是也可以通过为程序指定特定的控件值来改进程序的性能。IMAQReadDataMatrixBarcode模块能自动定位图像中的数据阵列码。但是也可以通过定位来改进检测性能。使用定位要检测的物体一节中介绍的一种技术然后将位置的关注区描述传递给IMAQReadDataMatrixBarcode模块。读取QR码IMAQReadQRCode模块用于读取QR或microQR码中的编码值。该模能自动为程序确定搜索参数。也可以通过为控件指定特定的值来改善应用性能。IMAQReadQRCode模块能自动定位图像中的QR码。也可以通过指定条码的位置来改善程序的性能。用定位要检测的物体一节中介绍的一种技术然后将位置的关注区描述传递给IMAQReadQRCode模块。读取PDF码IMAQReadPDFBarcode模块用于读取PDF码中的编码值。IMAQReadPDFBarcode模块能自动定位图像中的一个或多个PDF码。也可以指定代码位置来改进检测性能。用定位要检测的物体一节中介绍的一种技术然后将位置的关注区描述传递给IMAQReadPDFBarcode模块。提示如果每个图像中只读取一个PDF码那么将SearchMode设置为SingleBarcode,Conservative以加快模块的速度。检查图像的缺陷可以通过将被测图像与一个黄金模板相比较并验证图像中的特征来检测图像的缺陷。与黄金模板比较IMAQCompareGoldenTemplate模块基于灰度差检测图像。使用NIVision模板编辑器学习所要检测的黄金模板。选择StartAllProgramsNationalInstrumentsVisionTemplateEditor登录NIVision模板编辑器。使用进行颗粒分析一节中介绍的方法分析结果的二值图像。验证字符使用字符验证函数验证图像中的字符。在验证文字之前必须使用NIOCR训练接口利用字符样板训练OCR会话。选择StartAllProgramsNationalInstrumentsVisionOCRTraining登陆NIOCR训练接口。然后必须为字符集中的每个字符指定对应字符。需要验证的字符与这些参考字符相比较并基于这个比较付给一个分值。当训练了字符样板并赋予相应字符之后使用下列函数来验证字符。在代码的初始化部分使用IMAQOCRReadCharacterSetFile模块读取使用NIOCR训练接口创建的一个会话。IMAQOCRVerifyText用于验证被测图像关注区域中的字符。IMAQOCRDisposeSession模块用于释放OCR会话使用的资源。显示结果可以将检测阶段得到的结果覆盖在检测图像上。NIVision将所要覆盖的信息附加到图像上而不修改图像。也可以将相似的覆盖信息分成组以将多个覆盖信息作为一个来起作用。每次显示图像时都会出现覆盖信息。使用下列模块设置或查看图像覆盖的属性。IMAQSetOverlayProperties为一幅图像设置覆盖属性。IMAQGetOverlayProperties从一幅图像中获取覆盖属性。使用下列模块覆盖搜索区域、检测结果以及其它信息如文字和位图。IMAQOverlayPoints将点覆盖在图像上。用xy坐标表示一个点。IMAQOverlayLine将一条直线覆盖在图像上用起点和终点表示一条线。IMAQOverlayMultipleLines在图像上覆盖多条线。IMAQOverlayRectangle将矩形覆盖在图像上。IMAQOverlayOval将椭圆或圆覆盖在图像上。IMAQOverlayArc将弧覆盖在图像上。IMAQOverlayBitmap将位图覆盖在图像上。IMAQOverlayText将文字覆盖在图像上。IMAQOverlayROI将一个有关注区描述符指定的关注区覆盖在图像上。要使用这些模块需要传入所要覆盖的图像和需要覆盖的信息。提示使用前面的模块时可以选择覆盖的颜色。可以为下列处理模块配置不同的图像覆盖信息类型:IMAQEdgeIMAQFindCircularEdgeIMAQFindStraightEdgesIMAQFindConcentricEdgeIMAQClampHorizontalMaxIMAQClampHorizontalMinIMAQClampVerticalMaxIMAQClampVerticalMinIMAQFindPatternIMAQCountObjectsIMAQFindCoordSys(Rect)IMAQFindCoordSys(Rects)IMAQFindCoordSys(Pattern)下面的列表包含了各种可以在上述模块上覆盖的信息类型::SearchareainputintotheVI(搜索区域输入到模块)Searchlinesusedforedgedetection(用于边缘检测的搜索线)Edgesdetectedalongthesearchlines(沿着搜索线检测到的边)Boundingrectangleofparticles(颗粒的包罗矩形)Centerofparticles(颗粒的中心)ResultoftheVI(模块的结果)将模块对应的布尔控件设置为允许来选择覆盖信息。IMAQClearOverlay模块用于从图像中清除任何事先覆盖信息。IMAQWriteFile模块的IMAQWriteImageandVisionInfoFile实例可以将覆盖信息保存到文件中。也可以使用IMAQReadImageandVisionInfo模块从文件中将信息读取到图像中。注意当图像大小或方向改变时使用IMAQSetOverlayProperties模块制定覆盖信息的行为。默认情况下如果图像大小或方向改变校准和覆盖信息会被从图像中移除

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/84

¥20.0

立即购买

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利