1、IMAQ 模块介绍 fhinali 编写 IMAQ 模块介绍 一 LabVIEW 机器视觉前面板上的模块有以下几类 (如图 1 所示 ) 1 IMAQ Image.ctl 2 Image Display control 3 IMAQ Vision controls 4 Machine Vision controls 图 1 1 IMAQ Vision controls 对图像进行分析和处理所用到的一些控件 ,包括图像的类型 ,图像处理的方式和不同的形态算子以及 颜色的类型 的选择 等等 。如图 2 IMAQ 模块介绍 fhinali 编写 图 2 1.1 Image Type 用于图片类型的选
2、择 ,可以选择的类别有 8bits, 16bits, Float, Complex, RGB 和 HSL。一般用在从文件中读取图片时类型的选择 。 1.2 ROI Descriptor ROI 区域的描述 。 ROI 是 Region Of Interesting 的简称 ,中文应该翻译为目标区域 。一般用在一个大图中取一块 特定形状的区域 ,以便后续的处理和分析 。 ROI 为一簇数据 ,包括一个整数数组和一个簇组成的数组 。整数数组内有 4 个元素 ,为图形最小外接矩形的 四条边的坐标 。簇数组中的簇由轮廓类型 (整数 ), ROI 类型 (整数 )和图形坐标点 (为数组 ,根据 ROI
3、类型的不同 ,数组的定义 也不同 ) 1.3Optional Rectangle 选择的矩形区域 ,为四个元素的数组 ,代表矩形的四条边的坐标 。 1.4Color Mode 色彩模式 ,彩色图形的显示和处理模式 ,包括 RGB,HSL,HSV,HIS 四种 。 1.5Threshold Range 阀值范围 ,为一包含两个数组元素的簇 ,常用于灰度或色彩图像阀值处理模块中 。 1.6 Convolution Kernel 二维浮点数组成的数组 ,用于构造一些算法的算子 。 1.7 Morphology Operation 形态算法的选择 。可以选择不 同的数据处理方式 。 1.8 Struc
4、turing Element 结构元素 ,为二维的整数数组 。 IMAQ 模块介绍 fhinali 编写 2 Machine Vision controls 机器视觉中用到的一些控件 ,只要是对图像画面进行选择的一些工具 ,包括点 ,线和面的选择以及坐标系的设定 。如图 3 所示 2.1 Point 点的选择 ,包括两个元素的簇 ,分别为横坐标和纵坐标 。 2.2 Line 线的选择 ,包括四个元素的簇 ,分别为起点和终点的横坐标和纵坐标 。 2.3 Rectangle 面的选择 ,包括五个元素的簇 ,分别为对角线两点横坐标和 纵坐标 ,以及矩形选择的角度 。 2.4 Circle 环形面 ,
5、包括六个元素的簇 ,分别为圆心坐标 ,内外半径的长度以及起始角和终止角 。 图 3 二 以上都是程序前面板上所用到的控件 ,而 LabVIEW 强大的图像处理功能都是通过其程序面板上的功能节点来实现的 。主要的节点可以分为以下四大类 ,如图 4 1 Image Acquisition 2 Vision Utilities 3 Image Processing 4 Machine Vision IMAQ 模块介绍 fhinali 编写 图 4 1 Image Acquisition 图像采集功 能模块 ,主要是通过 NI 的系列图像采集板卡来获得图像 。节点包括任务的建立 ,设备的初始化以及硬件
6、参数的设定等功能节点 。如图 5 图 5 2 Vision Utilities 视觉应用模块 ,用来对图像进行一些初步的整体操作 。如图 6 IMAQ 模块介绍 fhinali 编写 图 6 2.1 Image Management 图像管理模块 ,包括建立和清除图像任务 ,获取图像的各类信息 ,图像的类型转换等功能节点。如图 7 2.1.1Create 创建一个图像任务 2.1.2Dispose 清除图像任务 2.1.3Get Image Size 获得图像的大小信息 2.1.4Set Image Size 设置图像的大小 2.1.5Get Image Info 获得图像信息 ,包括图像的大
7、小 ,名称 ,分辨率等 2.1.6Copy 拷贝图像 2.1.7Image to Image 一个图像映射到另一个图像上 2.1.8Get Offset 针对于 mask 而言 。获得 Mask 在图像中的偏移量 。 2.1.9Set Offset 针对于 mask 而言 。设定 Mask 在图像中的偏移量 。 2.1.10Cast Image 图像类型的转换 。 2.1.11 Is Vision Info Present 判断图像中是否存在图像信息 。 IMAQ 模块介绍 fhinali 编写 图 7 2.2 Files 图像文件 模块 ,完成对图像文件的读写 ,以及图像附加信息的读写操作
8、。 图 8 2.2.1Read File 读取图像文件 2.2.2Write File 保存图像文件 2.2.3Get File Info 获得图像信息 ,包括图像的类型 ,分辨率大小 2.2.4Write BMP File 保存为 BMP 图像文件 2.2.5Write JPEG File 保存为 JPEG 图像文件 2.2.5Write PNG File 保存为 PNG 图像文件 2.2.5Write TIFF File 保存为 TIFF 图像文件 2.2.6Read Image And Vision Info 读取图像及其附加信息 。 2.2.7Write Image And Visio
9、n Info 保存图像及其附加信息 。 2.3 External Display 图像的外部显示 。具体功能还不太清楚 。如图 9 所示 IMAQ 模块介绍 fhinali 编写 图 9 2.4 Region of Interest ROI 模块 ,主要完成 ROI 和 Mask 之间的转化 , ROI 区域的设定以及在不同坐标系下的转换 。如图 10 图 10 2.4.1ROIToMask 2.4.2MaskToROI 以上两者 Mask 和 ROI 之间的相互转换 。在一些图像的分析模块中 ,除了要求输入图片外 ,还要一个 Mask,即只对图片中的 Mask 区域进行分析 ,这就要求把自己
10、选择的 ROI 转换为Mask。 2.4.3Group ROIs 把多个 ROI 数组转换为一个 ROI 区域 。其中转换后的 ROI 区域包含 原 ROI数组的所有区域 。 2.4.4Ungroup ROIs 为 2.4.3Group ROIs 的逆运算 ,即把一个 ROI 区域转换为 ROI 数组 ,数组中的每个 ROI 都是一个图形轮廓 。 2.4.5 TransformROI 把 ROI 区域从一个坐标系转换为另一种坐标系中 。 IMAQ 模块介绍 fhinali 编写 2.4.6 ROI Conversion ROI 和各种点 、线、面等各类图形之间的转换 。 2.5 Image M
11、anipulation 图像处理模块 。包括图像的放大和缩小 ,平移以及旋转 。如图 11 图 11 2.5.1 Resample 重新定义图像的大小 ,使用此模块可以放大或缩小图像 。 2.5.2 Expand 通过调整 整幅 或一部分图片的分辨率 ,来放大图片 。 2.5.3 Extract 通过调整 整幅 或一部分图片的分辨率 ,来缩小图片 。 2.5.4 Interlace 分别提取一幅图像的奇偶像素 ,分成两幅图片 。 2.5.5 Symmetry 得到一幅图像的对称图像 2.5.6 Rotate 得到一幅图像的旋转图像 2.5.7 Shift 得到一幅图像的平移图像 2.5.8 U
12、nwrap 将环形的图片展开成矩形 2.5.9 Clipboard To Image 将剪贴的数据拷贝到图像 2.5.10 Image To Clipboard 将图像拷贝到剪贴板 2.5.11 3DView 将图像进行三维变换 2.6 Pixel Manipulation 图像像素处 理模块 。对图像的像素直接进行操作 ,包括图像上点 ,线,面像素值的获取和设定,以及在图像中插入文本 。如图 12 IMAQ 模块介绍 fhinali 编写 图 12 2.6.1 Get pixel value 获得图像中某一点的像素值 ,仅限于灰度图像 。 2.6.2 GetRowCol 获得图像中某一行或者
13、列的像素值 ,仅限于灰度图像 2.6.3 GetPixelLine 获得图像中某一条直线的像素值 ,仅限于灰度图像 2.6.4 ImageToArray 将图像转化为数组 2.6.5 SetPixelValue 设置图像中某一点的像素值 。 2.6.6 SetRowCol 设置图像中某一行或者列的像素值 2.6.7 SetPixelLine 设置图像中某一条直线上点的像素值 2.6.8 ArrayToImage 将数组转化为图像 2.6.9 FillImage 将图像中的某块区域用像素值填充 2.6.10 Draw 在图像中绘制几何图形 2.6.11 Draw Text 在图像中添加文字 2.
14、7 Overlay 图像覆盖模块 。可以对图像上的某一点 ,线,面(多边形 ,矩形和圆 )进行覆盖 。此种覆盖为非破坏性的覆盖 ,即不破坏原有的图像 ,覆盖信息可以另外 和图像一起 保存 。如图 13 IMAQ 模块介绍 fhinali 编写 图 13 2.7.1 Overlay Points 在图像中覆盖一点或是一组点 2.7.2 Overlay Line 在图像中覆盖一条线 2.7.3 Overlay Multiple Lines 在图像中覆盖 多条直线或多边形 2.7.4 Overlay Rectangle 在图像中覆盖一矩形 2.7.5 Overlay Oval 在图像中覆盖一椭圆 2
15、.7.6 Overlay Arc 在图像中覆盖一弧形 2.7.7 Overlay Bitmap 在图像中覆盖一位图 2.7.8 Overlay Text 在图像 中覆盖文字 2.7.9 Clear Overlay 在图像中清除覆盖 2.7.10 Copy Overlay 在图像中拷贝覆盖 2.7.11 Overlay ROI 在图像中覆盖 ROI 区域 2.7.12 Merge Overlay 合并图像中的覆盖 2.7.13 Read Image And Vision Info 读取图像以及图像信息 2.7.14 Write Image And Vision Info 写入图像 以及 图像信息
16、 上述读写图像及信息的模块 ,是将图像中的覆盖信息一块 读取 /保存的 2.8 Calibration 校准模块 。校准由于相机镜头的光学畸变而或拍摄角度引起图像变化 。也包含像素坐标系和实际坐标系之间的转换节点 。如图 14 IMAQ 模块介绍 fhinali 编写 图 14 2.8.1 Learn Calibration Template 对校准模块进行学习 2.8.2 Set Simple Calibration 对校准的设置 2.8.3 Set Calibration Info 设置图像校准的信息 2.8.4 Get Calibration Info 获得图像校准中的信息 2.8.5
17、Convert Real World to Pixel 将实际坐标系转化为图像像素坐标系 2.8.6 Convert Pixel to Real World 将图像像素坐标系转化为实际坐标系 2.8.7 Correct Calibrated Image 对图像进行校准 2.8.8 和 2.8.9 与 2.7.13 和 2.7.14 模块相同 。可以将图像校准信息也写入文件 。 2.9 Color Utilities 颜色应用模块 。彩色图像中色彩的提取 ,图像中某点 ,线,面中色彩的设定或获取 ,以及不同色彩模型中的转换 。如图 15 IMAQ 模块介绍 fhinali 编写 图 15 2.9
18、.1 ExtractColorPlanes 从彩色图像中提取各颜色分量的图像 2.9.2 ExtractSingleColorPlane 从彩色图像中提取单个颜色图像 2.9.3 ReplaceColorPlane 色彩的替代 2.9.4 GetColorPixelValue 获得彩色像素点的值 2.9.5 SetColorPixelValue 设置彩色像素点的值 2.9.6 GetColorPixelLine 获得图像中某条直线的像素值数组 2.9.7 SetColorPixelLine 设置图像中某条直线的像素值 2.9.8 ColorImageToArray 将彩色图像转化为数组 2.9
19、.9 ArrayToColorImage 将数组转化为彩色图像 2.9.10 RGBToColor 2 将 RGB 制式的彩色 图像 转化为其它制式的 彩色图像 (如 HSL, HSV, HSI) 2.9.11 ColorToRGB 将其它制式的彩色图像 (如 HSL, HSV, HSI)转化为 RGB 制式 2.9.12 ColorValueToInteger 将表示颜色的 RGB 三种分量转化为整数的形式 2.9.13 IntegerToColorValue 将整数形式的颜色转化为 RGB 三种分量的形式 3 Image Processing 图像处理模块 ,主要是对灰度和彩色图像的处理
20、。如图 16 所示 图 16 3.1 processing 处理模块 ,完成像素值的处理 。包括像素值的查表转换 ,灰度图像和彩色图像阀值的设定 。如图 17 所示 。 IMAQ 模块介绍 fhinali 编写 图 17 3.1.1 UserLookup 通过查表的方式来重新定义图像中的像素值 。所查的表是用户自定义的 。 3.1.2 MathLookup 通过数学计算改变图像中的像素值分布 。 3.1.3 Equalize 使图像中的像素值分布平均 。主要是用于改变整个图像的平均灰度值 。 3.1.4 BCGLookup 图像的亮度 ,对比度和非线性的校准 。其中的 BCG 分布代表 bri
21、ghtness, contrast, and gamma correction 3.1.5 Threshold 从图像中取阀值 。只提取图像中阀值内的像素点 ,忽略阀值外的像素 。 3.1.6 MultiThreshold 从图像中取阀值 。与上个节点相对比 ,本节点可以在一个图像中取多个阀值范围 。 3.1.7 Label 在一个二值图像中 ,用来标注像素点 。 3.1.8 Inverse 对灰度图像进行取反操作 ,以方便计算图像 的负片 。 3.1.9 AutoBThreshold 根据预设定方式 ,对图像进行自动阀值选择 。 3.1.10 AutoMThreshold 多阀值的自动选择
22、。自动选择的阀值范围后 ,可以用 MultiThreshold和 UserLookup 操作 。 3.1.11 MagicWand 和图像中某点的灰度值相近并与之相连通 ( 4 连通或 8 连通 )的所有像素点。灰度值相近的范围可以自己定义 。 3.2 Filter 滤波器模块 ,对图像进行滤波等处理 。包括各类算子的构造和使用 ,以达到对图像平滑 ,去处噪声 ,边缘锐化等处理 。如图 18 所示 。 IMAQ 模块介绍 fhinali 编写 图 18 3.2.1 GetKernel 获得算子 。可以通过 family, size 和 number 读取预先设定的算子 。 3.2.2 Buil
23、dKernel 创建所需要的算子 。 3.2.3 Convolute 通过线性的滤波器进行滤波处理 。滤波算子可以自己定义 。 3.2.4 Correlate 计算图像与模板图像之间的关联性 。 3.2.5 LowPass 低通滤波 。如果像素值的变化大于一定范围 ,将变化过大的像素值置为像素平均值 。 3.2.6 NthOrder 3.2.7 EdgeDetection 边缘检测 。根据预先设定的变化范围 ,对灰度图像进行边缘检测 。有 Differentiation (Default) Gradient Prewitt Roberts Sigma Sobel 等方式可以选择 。 3.2.8
24、 CannyEdgeDetection Canny 边缘检测法 。 3.3 Morphology 图像的形态处理模块 。一般是对灰度图像进行的处理 。包括图像的填补 ,距离的测量 ,图像的细化 ,图形的分离等模块 。如图 19 所示 。 IMAQ 模块介绍 fhinali 编写 图 19 3.3.1 Distance 计算像素点的距离 。 3.3.2 FillHole 对粒子中的空隙进行填充 3.3.3 RejectBorder 删除接触到边界的粒子 3.3.4 RemoveParticle 删除或保留一些较小的粒子 。 3.3.5 Morphology 对图像进行基本的形态变换 。其变换的形
25、态可以进行选择 。 3.3.6 GrayMorphology 对图像的灰度值进行形态的变化 。 3.3.7 Segmentation 图像的分割 。 3.3.8 Danielsson 距离的测量 。和 Distance 功能大致相同 ,但其精确度比较高 。 3.3.9 Find Circles 将图像中的重叠图案分离开 ,并根据设定的半径范围寻找符合这一要求的圆形图案 。 3.3.10 Convex Hull 标注出图像中的粒子外轮廓 。 3.3.11 Skeleton 根据所选择算子的算法 ,提取图像的骨干 。只对二值图像有作用 ,类似于图形的细化 。 3.3.12 Separation 图
26、形的分离 ,将多个连接在一起但有接触痕迹的图形分离开来 。在算法上是通过先将图像细化 ,再将分离开的图形做处理 。 3.3.13 Particle Filter 2 过滤特定图形 。将图像中特定形 状和大小的图形保留或删除 。 3.4 Analysis 图像的分析模块 。一般是针对二值图像或灰度图像进行 。包括图像中灰度值的分析 ,图形质心的计算 ,图像中直线灰度值和 ROI 轮廓线的分析 。如图 20 所示 IMAQ 模块介绍 fhinali 编写 图 20 3.4.1 Histograph 图像灰度值的曲线图 。可以以簇或者曲线的形式显示 。 3.4.2 Histogram 图形灰度值的柱
27、状体 。相对比曲线图节点 ,此节点的功能更丰富 。 3.4.3 Quantify 对图像的量化 。可以计算图像中平均灰度值 ,最大 /最小灰度值以及面积等 。 3.4.4 Centroid 计算图形的质心 ,结果为一包含坐标值的簇 。 3.4.5 LineProfile 计算图形中直线的相关数据 。输入为一数组 ,包含四个元素 ,分别代表直线两端的坐标值 。输出为直线上点的灰度值 ,直线的外接矩形等信息 。 3.4.6 ROIProfile 计算图形中 ROI 的相关信息 。输入为 ROI Descriptor 的 ROI 形状的说明信息,输出为 ROI 区域的灰度值曲线图 ,像素值的统计以及
28、外接矩形等信息 。 3.4.6 LinearAverages 线性的平均灰度值 。计算图像中指定矩形区域内的横坐标和纵坐标下的平均灰度值 。 3.4.7 Particle Analysis Report 图像中的粒子点分析报告 。根据设定相邻的类别 ,节点对粒子点进行分析 ,获得粒子的个数 、面积 、中孔个数 、质心和方向的信息 。 3.5 Color Processing 颜色处理模块 。一般是针对彩色图像中的颜色进行处理 。包括图像中彩色像素的取代 ,色彩的阀值和分析 ,图像中色彩的学习和匹配 。如图 21 所示 。 IMAQ 模块介绍 fhinali 编写 图 21 3.5.1 Colo
29、rUserLookup 通过查表的方式替代图像中色彩的灰度值 ,用像素值为数组索引值的像素点的像素值用其对应元素值来代替 。举例来说明 ,图像为 RGB 类型 ,每个基本色 ( R,G, B)都可以连接一个大小为 256 个元素的一维数组 。如果 R 端连接的数组为 ( 100, 80,60, 40, 20, 0), 即将图像中 R 值等于 0 的像素点的 R 值置为 100,将图像中 R 值等于 1的像素点的 R 值置为 80,将图像中 R 值等于 3 的像素点的 R 值置为 60 3.5.2 ColorBCGLookup 对图像中每种色彩的 BCG( brightness, contras
30、t, and gamma correction即亮度 ,对比度和灰度进行校正 )。 3.5.3 ColorEqualize 色彩的补偿 。有两种模式可以选择 :一是只对图像的亮度进行补偿 ,而不改变图像的色调和饱和度 。二是增强图像三种色彩的对比度 ,这样会改变图像的色调和饱和度 。 3.5.4 ColorThreshold 图像颜色阀值的选择 。可以分别对图像中的 RGB 三种基色的范围进行选取 。 3.5.5 ColorHistogram 对图像中色彩的分析柱图 。输出为 Histogram Report,其中包含最小值 ,最大值 ,平均值以及面积等元素 。 3.5.6 ColorHist
31、ograph 图像中色彩分析曲线图 。输出为 Histogram Graph,其结果可以在 Graph中直接以曲线的形式显示 ,比较直观 。 3.5.7 ColorLearn 色彩的学习 。可以提取图像 ROI 区域中的色彩特征 ,其结果用于与图像色彩相关的功能模块中 ,如 color matching(色彩匹配 ), color identification 和 color image segmentation。 3.5.8 ColorMatch 色彩的匹配 ,对不同图像中的色彩内容的对比 。其输入 Color Spectrum 为上一 节点 ColorLearn 的输出 。 3.6 Ope
32、rators 对图像的操作模块 。包括图像的加减乘除运算 ,以及逻辑运算 。其运算的元素是图像中像素点的像素值 。如图 22 所示 。 IMAQ 模块介绍 fhinali 编写 图 22 3.6.1 Add 相加运算 。将两个同类型图像的像素值相加 ,或图像的像素值和常数相加 。相加后的像素值如果大于最大像素值 ,按最大值处理 。如在 8 位图像中像素值大于 255,按最大值 255 处理 。 Dst(x, y) = SrcA(x, y) + SrcB(x, y) 或:Dst(x, y) = SrcA(x, y) + Constant 3.6.2 Subtract 相减运算 。将两个同类型图像
33、的像素值相减 ,或图像的像素值和常数相减 。相加后的像素值如果小于 0,按 0 处理 。 Dst(x, y) = SrcA(x, y) SrcB(x, y) 或:Dst(x, y) = SrcA(x, y) Constant 3.6.3 Absolute Difference 绝对差值运算 。将两个同类型图像的像素值相减 ,或图像的像素值和常数相减 。相加后的像素值如果小于最小像素值 0,取其绝对值进行处理 。如在图像中像素值为 50,按其绝对值 50 处理 。 3.6.4 And 与 /与非运算 。对两个同类型 图像的像素值进行与 /与非运算 ,或图像的像素值和常数进行与 /与非运算 。进行
34、逻辑运算时 ,像素值转化为二进制的形式进行 ,位数不够数据前补 0。如像素值 10 和 2 进行与运算 ,转化为二进制为 1010 和 10 进行与运算 ,结果为 10,即十进制的 2。 Dst(x, y) = SrcA(x, y) AND SrcB(x, y). 或 Dst(x, y) = SrcA(x, y) AND Constant. 3.6.5 Or 或 /或非运算 。对两个同类型图像的像素值进行或 /或非运算 ,或图像的像素值和常数进行或 /或非运算 。进行逻辑运算时 ,像素值转化为二进制的形式进行 ,位数不够数据前IMAQ 模块介绍 fhinali 编写 补 0。 Dst(x, y
35、) = SrcA(x, y) OR SrcB(x, y). 或 Dst(x, y) = SrcA(x, y) OR Constant. 3.6.6 Multiply 相乘运算 。将两个同类型图像的像素值相乘 ,或图像的像素值和常数相乘 。相乘后的像素值如果大于最大像素值 ,按最大值处理 。如在 8 位图像中像素值大于 255,按最大值 255 处理 。 Dst(x, y) = SrcA(x, y) SrcB(x, y) 或:Dst(x, y) = SrcA(x, y) Constant 3.6.7 Divide 相除运算 。将两个同类型图像的像素值相除 ,或图像的像素值和常数相除 。 Dst(
36、x, y) = SrcA(x, y) SrcB(x, y) 或 Dst(x, y) = SrcA(x, y) Constant 3.6.8 LogDiff Dst(x, y) = SrcA(x, y) And Not (SrcB(x, y). 或 Dst(x, y) = SrcA(x, y) And Not (Constant). 3.6.9 Xor 异或运算 。对两 个同类型图像的像素值进行异或运算 ,或图像的像素值和常数进行异或运算 。进行逻辑运算时 ,像素值转化为二进制的形式进行 ,位数不够数据前补 0。 Dst(x, y) = SrcA(x, y) XOR SrcB(x, y). 或
37、Dst(x, y) = SrcA(x, y) XOR Constant. 3.6.10 MulDiv 计算两个图像的比率 。图像一与常数相乘后 ,在与图像二相除 。 Dst(x, y) = (SrcA(x, y) Constant ) SrcB(x, y) 3.6.11 Modulo 计算图像 一除以图像二或常数后所得的余数 Dst(x, y) = SrcA(x, y) % SrcB(x, y) 或: Dst(x, y) = SrcA(x, y) % Constant 3.6.12 Compare 对两个同类型得图像进行比较运算 ,或者是图像和常数进行比较运算 。运算得类型有 : Averag
38、e, Min, Max, Clear if or =, Clear if ,其中得 clear 为置零运算 。 3.7 Frequency Domain IMAQ 模块介绍 fhinali 编写 对图像的频域分析 。包括 FFT 变换和 FFT 反变换等操作 。如图 23 所示 图 23 3.7.1 FFT 对图像进行 FFT 变换 。 3.7.2 InverseFFT 对图像进行 FFt 逆变换 。 3.7.3 ArrayToComplexImage 将数组转化为复数图像 3.7.4 ArrayToComplexPlane 将数组转化为复平面量 3.7.5 ImageToComplexPla
39、ne 将图像转化为复平面量 3.7.6 ComplexImageToArray 将复数图像转化为数组 3.7.7 ComplexPlaneToArray 将复平面量转化为数组 3.7.8 ComplexPlaneToImage 将复数平面量转化为图像 3.7.9 ComplexConjugate 求已知图像得共轭图像 3.9.10 ComplexAttenuate 降低复数图像的频率 3.9.11 ComplexAdd 复数图像之间的相加 ,或复数图像和常数相加 3.9.12 ComplexSubtract 复数图像之间的相减 ,或复数图像和常数相减 3.9.13 ComplexFlipFre
40、quency 变换复数图像中的频率成分 。将高频和低频交换 。 3.9.14 ComplexTruncate 在复数图像中滤波 。可以选择高通和低通进行滤波 。 3.9.15 ComplexMultiply 复数图像之间的相乘 ,或复数图像和常数相乘 3.9.16 ComplexDivide 复数图像之间的相除 ,或复数图像和常数相除 4 Machine vision 机器视觉应用模块 。包括一些在工程中常用的模块 ,如坐标系的确定 ,图像的匹配和边缘的检测等 。此模块中绝大多数都是一个完成特定功能的子程序 ,由前 面介绍的基本模块构成 。可以双击打开 ,了解子程序的变成思路 。如图 24 I
41、MAQ 模块介绍 fhinali 编写 图 24 4.1 Select Region of Interest 选择 ROI 区域 ,通过鼠标在图像中选定一定的区域 。 ROI 区域包括点 ,线,矩形和环形 。如图 25 4.1.1 Select Point 图 25 4.2 Coordinate System 坐标系的确定 。在图像处理中 ,图像的位置等都是通过坐标系来表示的 。对同一物体的多次拍摄 ,物体在图像中的位置会有细微的变化 ,所以 仅靠图片的像素这种绝对坐标来确定位置是不可靠的 。在一般的图像分析中 ,我们采用的都是相对坐标 ,即图像中的物体和这种坐标点的相对位置是不变的 。拿仪表
42、盘举例来说 ,由于产品每次放置的位置不同 ,同一个指示灯在不同的拍摄图片中位置也不同 ,如果用图片的像素点作为坐标 ,那么该指示灯在不同的图片中的坐标是不同的 。但是指示灯相对于仪表盘的边缘的坐标是不变的 。坐标系的确定有单IMAQ 模块介绍 fhinali 编写 边,双边和区域三种方式 。如图 26 所示 图 26 4.3 Count and Measure Objects 返回图像中 物体的个数 ,面积 ,位置以及外形等信息 。如图 27 图 27 4.4)Measure Intensities 测量图像中的某块区域亮度 。可以测量点 、线、矩形内的图像亮度 。如图 28 IMAQ 模块介
43、绍 fhinali 编写 图 28 4.5)Measure Distances 距离的测量 。可以测量两个物体之间的水平方向和垂直方向的最大和最小值 。如图 29 图 29 4.6)Locate Edges 边缘检测 。用于物体边缘的确定 。可以检测水平方向 ,垂直方向 ,环形以及同心环的边缘 。如图 30 IMAQ 模块介绍 fhinali 编写 图 30 4.7)Find Patterns 图像的匹配 。仅使用于灰度图像 。在一幅大图中 ,寻找模板的信息 。模板可以是大图中的一个物体的图片 。信息包括在大图中找到模板的个数 ,模板的匹配 (相似 )度,位置等信息 。举例来说 ,大图为一块
44、PCB 的图片 ,而作为模板的小图是电阻的图片 ,通过此模块 ,可以在整块 PCB 中寻找此类电阻的个数 ,位置 ,放置角度 。一般的 PCB 检测都是通过这种思路实现的 。如图 31 所示 图 31 4.8) Searching and Matching 寻找和匹配图形 ,为图像匹配 的基本模块 。 图像匹配的基本过程 :模板学习的设定 模板学习 匹配设定 匹配 。上述中的 4.7 Find Patterns 就是通过调用这些匹配基本模块写成的子程序 。 通过这些基本匹配模块 ,可以根据自己的要求灵活的编写程序 。除了灰度图像的匹配 ,还可以进行彩色图像的匹配 ,形状匹配以及模板文件信息的生
45、成 (避免每次匹配都要学习模板 ,提高程序的运算速度 )。 如图 32 IMAQ 模块介绍 fhinali 编写 图 32 4.9)Caliper 边缘的测量 ,主要用来返回各种边缘信息 ,包括长度 ,坐标等 。如图 33 图 33 4.10)Analytic Geometry 图形的几何分析 。主要用于图形中的点线面的处理和分析 ,包括距离长度 ,直线之间的夹角 ,多点拟合直线 ,面积计算等 。如图 34 IMAQ 模块介绍 fhinali 编写 如图 34 4.11)Instrument Readers 数据读取工具 。有数码管的读取 ,指针读取和条形码的读取 。如图 35 所示 。 图 35