LabVIEW使用NI Vision模式匹配时的常见问题

简介: LabVIEW使用NI Vision模式匹配时的常见问题

LabVIEW使用NI Vision模式匹配时的常见问题


该如何使用模式匹配功能?为什么在进行模式匹配时会出现"无效模板"错误?


解决方案


模式匹配可以在灰度图像中快速地定位与某一已知参考模式匹配的区域,模式通常也称为模型或者模板。当使用模式匹配的时候,首先必须建立一个参考的模板,以供机器视觉应用系统在每幅获取的图像中搜索这一模板,并且计算出相应的匹配分数。这个分数表征了其与模板的相似程度。模式匹配会考虑模板的光亮度、污点、噪声和几何变形(例如位移、旋转或者缩放)。


以下是一些常见的模式匹配错误:


错误消息:-1074395247: Invalid templatedescriptor


错误消息:Not a valid template


错误消息:The Contrast In The Template IsToo Low


错误消息:-1074396077: ERR_INCOMP_TYPE -Incompatible image type


Some Matches Lie Outside A Rotated ROI WhenDoing Pattern Matching


Various Errors When Logged On Under aWindows User Account


错误消息-1074395247:Invalid template descriptor


当使用Vision Builder或者Vision Assistant创建一个模式匹配模板时,除了图像本身以外还保存了一些额外的信息,包括重叠信息、模式匹配模板信息和校准信息等。这些信息使得LabVIEW和Vision Builder知道模板是怎么获得的。当在LabVIEW中使用IMAQ ReadFile VI打开这个模板时,这些额外的信息并没有随着图像本身传递。同样,当使用IMAQ Write PNG File VI来创建一个模板时,这些额外的信息也没有随着图像保存,因此Vision Builder或者Vision Assistant不认识非法的模式匹配模板。

在LabVIEW中 :分别使用IMAQ Read Image And Vision Info VI 和 IMAQWrite Image And Vision Info VI来打开和创建模式匹配模板可以保留这些额外的信息。这些VI可以在以下三个位置找到:


Vision and Motion»Vision Utilities»Overlay,


Vision and Motion»VisionUtilities»Calibration,


Vision and Motion»Vision Utilities»Files.


在LabVIEW中创建模板时,应在 IMAQ Write PNG File VI之前使用IMAQ LearnPattern VI,以创建必须保存在PNG文件中的额外视觉信息。


在Visual Basic中 :要写入图像,以及与图像关联的额外视觉信息,请使用以下内容。


CWIMAQVision.WriteImageAndVisionInfo (SourceImage, Path [, ColorPalette])


这些额外信息还包括重叠信息、模式匹配模板、校准信息和用户自定义数据等。要读取图像文件,可以使用以下语句来读取包含额外信息的图像数据。


CWIMAQVision.ReadImageAndVisionInfo (SourceImage, Path [, ColorPalette])


这些额外信息包括重叠信息、模式匹配模板、校准信息和用户自定义数据等使用WriteImageAndVisionInfo写入的信息。


注意:如果使用的是IMAQ Vision Builder 6.1,请将Vision Acquisition驱动程序(NI IMAQ和NI IMAQdx),Vision Development Module(包含Vision Assistant)和Vision Builder软件升级到最新版本。这个错误会在IMAQ Read Image and Vision Info函数不能正确读取模板信息的时候出现。通常,当安装了不同版本的Vision Builder和Vision Development Module时,会出现此错误。


错误消息:Not a valid template


有可能会在使用IMAQ Vision 5.0或者6.0版本和Vision Builder/Vision Assistantz选择一个较大的模式匹配模板的时候碰到"system error"和"not a validtemplate"的错误信息。这个错误是由IMAQ Vision软件本身对模式匹配中的模板的大小的限制引起的。这个错误会在Vision 5.0、Vision 6.0和Vision 7.0中出现,在IMAQ Vision 7.0中,相应的错误信息为"The Template is Too Large"对于这些IMAQVision版本,模式匹配模板最多只能有16,000个象素点,但是对模板的尺寸大小没有限制。


这一限制在在Vision Development Moduleversion 7.1中得到改善,在这个版本中对模板象素点的多少和尺寸的大小都没有限制。


错误消息-1074395235:The Contrast In The Template Is Too Low


这个错误通常在所选定的区域不能提供足够多的信息来创建一个有效的模板时产生,而很多时候是因为图像没有足够高的对比度。另外,这个错误也有可能在所选定的区域太小的时候产生。有两种解决这个错误的方法:


提高图像的对比度。如果选用这种方法,那么必须同时提高其他用于模式匹配的图像的对比度,以得到同样的结果。


增加模板的大小。以保证能为创建一个有效的模板提供足够的信息。


错误消息-1074396077: ERR_INCOMP_TYPE - Incompatible image type


为了保证模式匹配正常进行,获取的图像和匹配的模板图像必须有相同的位深度。例如,如果获取的图像是16-bit的,但是模板图像是8-bit的,纳闷LabVIEW就会报告以上的错误并且不能正常执行匹配。


对于在NI-IMAQdx下运行或 NI-IMAQ for IEEE 1394下运行的FireWire相机,可以通过Measurement&Automation Explorer(MAX)调整所获取图像的位深度。在MAX中的Devices and Interfaces»NI-IMAQ IEEE 1394 Devices ,选择相机。就可以在右边的窗口中看到摄像头的信息和设置参数,可以在这里查找是否有设置位深度的参数。如果有,那么就可以根据匹配模板的位深度来调整摄像头的位深度参数。如果在修改了位深度之后LabVIEW还是报告同样的错误,那么可能还要修改字节顺序(Byte Order)和颜色编码(Color coding)。


如果不能调整摄像头的位深度,那么可以根据获取图像的位深度来重新建立一个模板图像。


Some Matches Lie Outside A Rotated ROI WhenDoing Pattern Matching


模式匹配算法只能在一个非旋转的矩形ROI中搜索匹配对象。当所选取的ROI不能满足这个要求时,模式匹配算法会首先以ROI最小和最大的X、Y坐标来重新定义搜索区域,而不使用原先的ROI。


解决方法:


旋转要进行模式匹配的原始图像,以得到一个非旋转的ROI。如果使用这种办法的话,那么你还需要让模板重新被识别或者在IMAQ Setup Match Pattern.VI的Match Mode参数中选择"Rotation Invariant"。


另外一个解决办法是首先把图像选定的ROI以外的区域用黑色屏蔽,虽然模式匹配算法仍然会重新定义搜索区域,但是可以保证在先前选定的ROI以外找不到匹配的对象。


Various Errors When Logged On Under a WindowsUser Account用户必须有Windows管理员(Administrator)权限。因为在Vision Builder forAutomated Inspection和Vision Assistant中获取的图像会暂存在安装路径的临时文件夹下,IMAQ Vision会用到Windows系统文件夹下的某些动态链接库;所以如果用户没有读写系统文件夹的权限,那么即使所有设置包括模板信息是合法的,也会在运行模式匹配时碰到"Not a valid template"等错误。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目问题,可联系我们。


 

相关文章
|
7月前
|
存储 算法
通过MATLAB自动产生Hamming编译码的verilog实现,包含testbench
通过MATLAB自动产生Hamming编译码的verilog实现,包含testbench
通过MATLAB自动产生Hamming编译码的verilog实现,包含testbench
|
机器学习/深度学习 自然语言处理 数据处理
文本数据处理的终极指南-[NLP入门](三)
在这篇文章中,我们将要讨论不同的特征提取方法,从一些基本技巧逐步深入学习高级自然语言处理技术。我们也将会学习如何预处理文本数据,以便可以从“干净”数据中提取更好的特征。
392 0
文本数据处理的终极指南-[NLP入门](三)
|
5天前
|
算法 Linux 开发工具
LabVIEW编程开发NI-USRP
LabVIEW编程开发NI-USRP
12 0
|
5天前
|
传感器 编解码 人工智能
LabVIEW编程LabVIEW开发NI 4351例程与相关资料
LabVIEW编程LabVIEW开发NI 4351例程与相关资料
10 0
|
5天前
|
测试技术 索引
MindOpt APL向量化建模语法的介绍与应用(2)
在数据科学、工程优化和其他科学计算领域中,向量和矩阵的运算是核心组成部分。MAPL作为一种数学规划语言,为这些领域的专业人员提供了强大的工具,通过向量式和矩阵式变量声明以及丰富的内置数学运算支持,大大简化了数学建模和优化问题的处理。在本文中,我们将探索MAPL的这些特性,并且通过示例来展示如何有效使用这些工具。
|
5天前
|
机器学习/深度学习 算法 测试技术
MindOpt APL向量化建模语法的介绍与应用(1)
向量化建模是一种高效的数学建模和编程技术,它涉及到对向量、矩阵和更高维数组进行操作,以实现操作的同时性和批量处理。在优化和数据分析等领域,向量化建模可以极大地提高计算效率,特别是当涉及到大量的重复计算时。由于向量化建模具有表述优势、操作优势、计算性能、可扩展性等优势,使得其适合于解决很大一类实际问题
|
9月前
|
机器学习/深度学习 编解码 算法
如何将算法翻译成RTL(零):绪论
如何将算法翻译成RTL(零):绪论
156 0
|
12月前
|
机器学习/深度学习 人工智能 并行计算
LabVIEW图形化的AI视觉开发平台(非NI Vision)VI简介
LabVIEW图形化的AI视觉开发平台(非NI Vision)VI简介
331 0
|
12月前
|
人工智能 物联网 持续交付
Alpaca-CoT项目原作解读:多接口统一的轻量级LLM指令微调平台
Alpaca-CoT项目原作解读:多接口统一的轻量级LLM指令微调平台
314 0
|
12月前
|
机器学习/深度学习 PyTorch 开发工具
使用LabVIEW实现 DeepLabv3+ 语义分割含源码
今天和大家分享如何使用labview 实现deeplabv3+的语义分割,并就 Pascal VOC2012 (DeepLabv3Plus-MobileNet) 上的分割结果和城市景观的分割结果(DeepLabv3Plus-MobileNet)给大家做一个分享
99 0