《NIVisionforLabVIEW基本.pdf》由会员分享,可在线阅读,更多相关《NIVisionforLabVIEW基本.pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、NINININI VisionVisionVisionVision forforforfor LabVIEWLabVIEWLabVIEWLabVIEW 基础基础( ( ( (目录目录) ) ) ) NI VISION 简介. 4 NI Vision 控件模板. 4 NI Vision 函数模板. 4 如何创建 NI Vision 应用. 8 准备测量图像. 10 建立图像系统. 10 校准图像系统. 11 创建图像.11 采集或读取图像. 15 显示图像.16 加入校准信息. 19 分析图像.19 改善图像.20 进行灰度和彩色测量. 25 定义关注区.25 测量灰度统计数据. 32 测量彩色
2、统计数据. 33 进行颗粒分析. 38 创建二值图像. 38 改善二值图像. 39 进行颗粒测量. 41 完成机器视觉任务. 42 检测物体定位. 43 设置搜索区域. 47 查找测量点.48 将像素坐标转换成现实坐标.66 进行测量.66 辨别被测部件. 69 检查图像的缺陷. 73 显示结果.74 校准图像.77 透视和非线性畸变校准. 78 Simple Calibration. 86 Save Calibration Information.88 Attach Calibration Information.89 在 LabVIEW 实时模块中使用 NI Vision.90 Overv
3、iew.90 Real-Time System Components.90 Software Installation. 91 Image Display. 92 Determinism in Real-Time Applications.95 Image Files. 100 Deployment. 101 Troubleshooting. 101 NINININI VisionVisionVisionVision forforforfor LabVIEWLabVIEWLabVIEWLabVIEW 基础基础( ( ( (一一) ) ) ):NINININI VisionVisionVisio
4、nVision 简介简介 2010-01-21 16:57:08 标签:LabView 机器视觉 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 NI Vision 控件模板 Vision 控件模板位于 LabVIEW 控件模板的最顶层,由一下元素组成: IMAQIMAQIMAQIMAQ Image.ctlImage.ctlImage.ctlImage.ctl该控件是一个类型定义,用于声明图象类型的数据。在 VI 的前面板 中使用该控件代表图象类型数据。例如,使用该控件作为一个子程序的输入或输出,使调用 成成可以将一幅图像传送给子程序。
5、 图像显示图像显示(Image(Image(Image(Image Display)Display)Display)Display)该控件用于在 LabVIEW 中直接显示图像。 也可以利用该控 件创建关注区域 (ROIs)。 图像显示控件提供标准和 3D 版两种外观。 IMAQIMAQIMAQIMAQ 视觉控件视觉控件( ( ( (IMAQIMAQIMAQIMAQ VisionVisionVisionVision controlscontrolscontrolscontrols) ) ) )这里的控件用于将 NI Vision 的程序控件直 接加入入用户自己的程序中获得相应的功能。 机器视觉
6、控件机器视觉控件( ( ( (MachineMachineMachineMachine VisionVisionVisionVision controlscontrolscontrolscontrols) ) ) )这里的控件用于将NI Vision的机器视觉控件 直接加入到用户自己的程序中以获得相应的功能。 NI Vision 函数模板 NI Vision for LabVIEW 由三个主要的函数模板组成:常用视觉程序(Vision Utilities), 图像 处理(Image Processing), 和机器视觉(Machine Vision) 。 本节介绍这些模板以及它们的 子模板。
7、常用视觉程序(Vision Utilities) 常用视觉函数用于在 NI Vision 中处理和显示图像。 ImageImageImageImage ManagementManagementManagementManagement管理图像程序组。利用这些程序可以建立和释放图像,设置和读 取图像的属性例如尺寸和偏移量,复制图象。也可以使用一些高级的 Vis 来定义图像的边框 区域以及访问图像数据的指针。 FilesFilesFilesFiles一组使用不同格式读、写图像文件,并从文件中获得所包含的图像的信息的程 序模块。 ExternalExternalExternalExternal Dis
8、playDisplayDisplayDisplay用于在外部窗口显示图像的程序模块组。使用这些程序模块可以完 成以下任务: 读取和设置窗口属性,如尺寸、位置、缩放系数 为图像窗口设置调色板 建立及使用图像浏览器 在图像窗口上为选中的关注区域建立和使用不同的交互式绘图工具。 检测画图事件 获得图像窗口上有关关注区域的信息。 RegionRegionRegionRegion ofofofof InterestInterestInterestInterest管理关注区域的程序组。使用这些程序可以通过编程来定义关注 区,以及定义关注区和图像掩码和关注区之间的相互转换。 ImageImageImageI
9、mage ManipulationManipulationManipulationManipulation修改图像颗粒内容的程序模块组。利用这些程序模块可以实现 图像的重新采样、提取部分图像,以及图像的旋转、平移、打包。该子模板还包括了图像与 剪贴板之间相互拷贝的程序模块。 PixelPixelPixelPixel ManipulationManipulationManipulationManipulation读取和修改图像中单独像素的程序模块组。利用这些程序模块可 以读取和设置图像中的像素,或者图像中的一行或一列;向图像中的地像素填充特定的值; 实现图像和 2 维 LabView 矩阵之间的
10、相互转换。 OverlayOverlayOverlayOverlay一组不改变图像的像素值的情况将图形覆盖在在图像显示环境上的程序模 块。利用这些程序模块可以使检测程序将检测结果覆盖在被检测图像上。 CalibrationCalibrationCalibrationCalibration空间校准图像的程序模块组,用于排除相机景深和镜头畸变,以获得精 确的真实的测量结果。利用这些程序建立简单的校准,或者让 NI Vision 从网格图像中自动 学习校准数据。还可以利用这些程序模块将像素坐标转换成真实坐标以便于测量。 ColorColorColorColor UtilitiesUtilitiesU
11、tilitiesUtilities访问彩色图像数据的程序模块组。利用这些程序可以从图像中提取调 色板,用新的数据替换彩色图像的调色板,在彩色图像与 2D 矩阵之间转换,读取和设置彩 色图像的像素值,将像素值从一个彩色颗粒转换到另外一个彩色颗粒。 VisionVisionVisionVision RTRTRTRT为 LabVIEW 实时模块使用 NIVision 提供的函数组。利用这些程序模块可 以在实时系统中将图像显示到视频输出中; 控制发送到网络上的图像的压缩设置, 以及实时 系统中处理程序的时间区段。 图像处理(Image Processing) NI Vision 中的分析、滤波和图像处
12、理函数。 ProcessingProcessingProcessingProcessing处理灰度和二值图像的程序模块。 利用这些函数可以使用不同的阈值将灰 度图像转换成二值图像。 也可以利用这些程序使用预定义或自定义的查找表变换图像, 进行 分界变换,修改图像的对比度,图像反向。 FiltersFiltersFiltersFilters滤波器,用于增强图像中的信息。利用这些程序可以实现虚像平滑、去除噪 声、 高光或强化图像中的边沿。 可以利用预定义的卷积内核, 也可以使用自定义的卷积内核。 MorphologyMorphologyMorphologyMorphology形态学组,进行图像形态
13、学运算的程序模块。其中一部分程序完成基本 的形态学运算, 如灰度和二值图像上的膨胀和腐蚀。 另一部分程序用于改进二值图像的质量, 微粒补孔、去除边框颗粒、去除小颗粒、基于颗粒的形状特征去除不希望的颗粒。该子模板 中的其它组用于分割接触颗粒、查找颗粒轮廓、检测圆形颗粒。 AnalysisAnalysisAnalysisAnalysis分子组,用于分析灰度和二值图像内容的程序模块。这些程序用于计算灰度图象 的直方图和灰度统计信息, 提取图像中任意维度上的像素信息和统计信息, 以及检测和测量 二值图像中的颗粒。 ColorColorColorColor ProcessingProcessingPro
14、cessingProcessing彩色处理组,分析和处理彩色图像的程序分组。这些程序用于计算 彩色图像的直方图;为彩色图像应用查找表;改变彩色图像的亮度、对比度、伽马信息, 以 及阈值。其中的一部分使用彩色匹配处理比较不同图像或不同区域的彩色信息。 OperatorsOperatorsOperatorsOperators图像基本算数和逻辑运算程序模块组。其中一部分用于图像与图像或常数 的加、 减、 乘、 除。 该子模板的另一部分进行逻辑运算-如 AND/NAND, OR/NOR, XOR/XNOR 以及图像之间或常数的像素比较。 另外, 这个子模板中的一个程序允许利用掩码操作选择 图像中的一个
15、区域。 FrequencyFrequencyFrequencyFrequency DomainDomainDomainDomain图像频域分析处理程序模块组。使用这些程序可以使用二维快速付利 叶变换(FFT)将图像从空域转换到频域,以及利用反 FFT 将频域变换到空域。这些程序模 块还可以提取复数图像的幅度,相位,实部和虚部。另外,这些程序模块还可以将复数图像 变换成复数二维矩阵, 或相反。 该子模板中的程序模块也可以进行一些基本复数图像间以及 复数图像与常数间的算术运算-如加、减、乘、除 运算。最后,其中的一些程序模块可以进 行频域的滤波。 机器视觉(Machine Vision) 机器视觉
16、函数是一些高级程序模块,用于简化常用的机器视觉任务。 SelectSelectSelectSelect RegionRegionRegionRegion ofofofof InterestInterestInterestInterest选择关注区程序模块组,用于选择关注区、在图像窗口上画 特殊的关注区,以及使用非常少的编程返回关注区信息。 CoordinateCoordinateCoordinateCoordinate SystemSystemSystemSystem坐标系统分组,用于发现与图像中物体相关的坐标系统。利用这 些程序模块发现坐标系统, 即可以用于边沿检测也可以用于模式匹配。 还可
17、以利用这个坐标 系统从其他机器视觉程序中进行测量。 CountCountCountCount andandandand MeasureMeasureMeasureMeasure ObjectsObjectsObjectsObjects计数和测量物体组, 该程序模块可以通过阈值将图像分割成孤 立的对象,然后查找并测量这些对象的特性。该程序模块还可以在测量时忽略未知的对象。 MeasureMeasureMeasureMeasure IntensitiesIntensitiesIntensitiesIntensities测量强度程序模块组,用于测量一个点上的像素密度或者一个线 或一个矩形区域内的像素
18、密度统计。 MeasureMeasureMeasureMeasure DistancesDistancesDistancesDistances测量距离程序组,两条纵向边沿之间的最小和最大水平距离,或 者两条横向边沿之间的最大和最小垂直距离。 LocateLocateLocateLocate EdgesEdgesEdgesEdges边沿查找程序组,查找垂直、水平、和圆形边沿。 FindFindFindFind PatternsPatternsPatternsPatternsAVI that learns and searches for a pattern in an image. Search
19、ingSearchingSearchingSearching andandandand MatchingMatchingMatchingMatching搜索和匹配程序组。 用于在灰度和彩色图像中建立和搜索模 式。该子模板包括一个可以在二值图像中搜索制定形状对象的程序。 CaliperCaliperCaliperCaliper卡尺,一组用于在图像的不同断面查找边沿的程序模块。使用这些程序可以 沿着一条线、矩形区域(耙子)中的一组平行线、圆形区域(同心耙)中的一组平行同心线, 或者圆形区域(轮子)中的一组辐射线查找边沿。还可以适用这里的程序查找图像中满足一 定条件的对边。 AnalyticAnal
20、yticAnalyticAnalytic GeometryGeometryGeometryGeometry分析几何程序组,用于对在图像中一个点集中做分析几何运算。 这些程序适用于图像中线、圆、椭圆的点集;计算一个点集代表的多边形的面积;测量点之 间的距离; 计算点所代表的线之间的夹角。 该子模板中的程序还可以实现诸如查找两条线的 交点以及查找两条线夹角的等分线等运算。 OCROCROCROCR光学字符识别程序组,用于光学字符识别和图像的区域检验。 ClassificationClassificationClassificationClassification分类程序组。根据形状或用户定义的特征
21、向量对二值对象进行分类。 InstrumentInstrumentInstrumentInstrument ReadersReadersReadersReaders设备读取程序组。 用于快速开发需要从 7 段代码显示、 计量仪表、 指针、一维条码、二维条码中读取信息的程序开发。 InspectionInspectionInspectionInspection检测程序组。将图像与一个标准模板对比。 快速视觉(Vision Express) Vision Express Vis 用于快速开发常用的图像采集和处理应用。 VisionVisionVisionVisionAcquisitionAcqui
22、sitionAcquisitionAcquisition视觉获取, 是一个 Express VI, 可以方便的配置用于获取来自模拟、 数字、相机连线、IEEE 1394 以及 GigE 版本相机的图像。 说明:必须安装说明:必须安装 NI VisionAcquisition Software 才能访问 VisionAcquisition Express VI。 VisionVisionVisionVisionAssistantAssistantAssistantAssistant视觉助手。利用 NI Vision Assistant 可以在 LabVIEW 环境中完成一 些常用的图像处理任务。
23、 NINININI VisionVisionVisionVision forforforfor LabVIEWLabVIEWLabVIEWLabVIEW 基础基础( ( ( (二二) ) ) ):准备测量图像:准备测量图像 2010-04-29 21:21:55 标签:Vision 图像 LabVIEW 基础 本节介绍如何建立图像系统,采集和显示图像,分析图像,以及为进一步处理准备图像。 建立图像系统 在开始获取、分析、处理图像之前,必须先建立图像系统。建立图像系统的方法取决于图像 环境以及分析和处理的需要。图像系统应该产生足够高的质量以能够从图像中获取信息。 搭建图像系统的完整步骤如下。 根
24、据给定的颗粒限制以及被检测物体的尺寸,确定设备类型。参考 NI Vision 概念手册中第 三章,系统设置与校准 。 确保相机传感器足够大以满足对最低分辨率的要求。 确保镜头景深足够高以保证焦点内的所有物体都不会因为镜头而畸变。 还要确保镜头的焦距 满足需要。 确保光照能够提供被检测物体与背景之间有足够的对比度,一便从图像中获取信息。 将相机摆放在与被测物体垂直的位置。 如果相机获取的物体的图像带有角度, 就会产生透视 误差。即便可以通过软件补偿这些误差,National Instruments 还是建议采用垂直的角度 以获得最精确的结果。 选择一个满足需要的图像采集设备。National I
25、nstruments 提供了许多图像获取设备,例 如模拟的彩色和单色设备以及数字设备。更多有关 NI 图像采集设备的详细信息,请访问: 。 为图像采集设备配置驱动程序软件。 如果拥有一台NI图像采集设备, 可以通过Measurement& Automation Explorer (MAX)配置 NI-IMAQ 或 NI-IMAQdx 驱动程序。在桌面上双击 Measurement & Automation 图标打开 MAX 。详细信息参见 Measurement & Automation Explorer Help。 校准图像系统 建立图像系统后,可以校准系统,为像素坐标指定实际的坐标,补偿图
26、像系统中固有的角度 和非线性误差。 像机与被测物体不垂直发生透视误差。 非线性失真可能来自像机镜头畸变。 透视误差和镜头 畸变导致出现扭曲的图像。 这种失真替代了图像中的信息, 但并不一定是破坏映像中的信息。 如果仅仅希望为像素坐标指定实际的坐标使用简单校准。 如果需要补偿透视误差和非线性镜 头扭曲使用透视和非线性扭曲校准。 创建图像 使用 IMAQ Create 程序建立一个引用图像。建立图像时,要制订下列图像数据类型之一: Grayscale (U8, default)8-位无符号 Grayscale (U16)16-位无符号 Grayscale (I16)16-位有符号 Grayscal
27、e (SGL)浮点 Complex (CSG)64-位复数 RGB (U32)32-位 RGB HSL (U32)32-位 HSL RGB (U64)64-位 RGB 如果需要可以多次执行IMAQ Create建立多个图像, 但所创建的每个图像都需要唯一的名称。 通过分析预期的应用程序确定所需的图像个数。 依据是程序的不同的处理阶段及是否需要为 每个处理阶段后保持原始图像。 说明说明 如果打算在图像上使用滤波或颗粒分析程序,必须保证图像有合适的边沿尺寸。默认 的边沿尺寸为三个像素。 当创建图像时,NI Vision 建立了一个内部的图像结构以保存图像的属性,如名称和边沿尺 寸。然而,此时没有为
28、图像像素分配内存。NI Vision 程序在图像尺寸修改时自动分配一定 量的内存。例如,采集和重取样程序改变图像尺寸所以它们会为图像像素分配适当的内存。 IMAQ Create 的输出是一个图像结构的引用。 可将该引用作为输入提供给所有 NI Vison 函 数的子程序。 开发期间, 可能需要在运行时验证图像的内容。 使用 LabVIEW 图像探针可以在运行期间察看 图像的内容。要建立探针,右击图像连接线,选择 ProbeProbe 即可。 许多属于 NI Vision 库的程序都需要一个或多个图像引用。所需的图像引用的数量取决图像 处理函数和希望使用图像的类型。 分析图象的 NI Visio
29、n 模块不修改只需要一个图像引用输入的内容。处理图像内容的模块可 能要求一个引用作为源图像和一个目标图像, 或者模块有一个可选的目标图像。 如果不能提 供源图像,模块会修改源图像。 在应用程序的最后,利用 IMAQ Dispose 模块释放所创建的图像。 输入输出合并 根据模块完成的功能类型的不同, 输入输出可能会产生不同的合并。 可以利用这种灵活性决 定要处理那个图像以及在哪里保存结果图像。 如果没有膜表图像连线, 那么使用源图像并传 递给目的输出。 下面的图描述了 NI Vision 中一些模块的接线板。 图象分析 下面的连线板仅用于分析图像的模块,所以既不改变图像尺寸也不改变内容。 这种
30、操作的 例子包括颗粒分析和直方图计算。 图像遮罩 下面的连线板介绍了图像遮罩。 ImageImage MaskMask 输入端表明处理和分析是依赖与另外一个图像的内容:ImageImage MaskMask。仅当 ImageImage MasMask k 中对应的像素不为空时 ImagImage e 中的像素才被处理。 如果一个 ImageImage MasMask k 的像素是 0, 对 应的 ImageImage 像素不会被改变。 说明说明 除了 IMAQ 定量模块之外,所有的 NI Vision 程序的图像遮罩都必须是 8-bit 的图像, IMAQ 定量模块支持 8-bit 和 16-
31、bit 的图像遮罩。 如果要对整幅图像进行处理或分析,就不要连接 ImageImage MaskMask 输入端。 将同一个图象既连接 到 ImageImage 的输入也连接到 ImageImage MaskMask 的输入,与将 ImageImage MaskMask 的输入端开放不连的效果 是一样的,除非是 ImageImage 必须是一个 8-bit 的图像情况下。 图像填充 下面的连线板用于完成图像填充的程序。 这类操作的例子包括读取文件,从 NI 图像采集设备采集图像,或者将一个二维矩阵转换成 图像。这类模块可能修改图像的尺寸。 图像处理 下面的连线板用于处理图像的模块。 这种连接器是 NI Vision 中最常见的。Ima