IMAQ模块介绍fhinali编写IMAQ模块介绍一.LabVIEW机器视觉前面板上的模块有以下几类(如图1所示)1.IMAQImage.ctl2.ImageDisplaycontrol3.IMAQVisioncontrols4.MachineVisioncontrols图11IMAQVisioncontrols对图像进行分析和处理所用到的一些控件,包括图像的类型,图像处理的方式和不同的形态算子以及颜色的类型的选择等等。如图2IMAQ模块介绍fhinali编写图21.1ImageType用于图片类型的选择,可以选择的类别有8bits,16bits,Float,Complex,RGB和HSL。一般用在从文件中读取图片时类型的选择。1.2ROIDescriptorROI区域的描述。ROI是RegionOfInteresting的简称,中文应该翻译为目标区域。一般用在一个大图中取一块特定形状的区域,以便后续的处理和分析。ROI为一簇数据,包括一个整数数组和一个簇组成的数组。整数数组内有4个元素,为图形最小外接矩形的四条边的坐标。簇数组中的簇由轮廓类型(整数),ROI类型(整数)和图形坐标点(为数组,根据ROI类型的不同,数组的定义也不同)1.3OptionalRectangle选择的矩形区域,为四个元素的数组,代表矩形的四条边的坐标。1.4ColorMode色彩模式,彩色图形的显示和处理模式,包括RGB,HSL,HSV,HIS四种。1.5ThresholdRange阀值范围,为一包含两个数组元素的簇,常用于灰度或色彩图像阀值处理模块中。1.6ConvolutionKernel二维浮点数组成的数组,用于构造一些算法的算子。1.7MorphologyOperation形态算法的选择。可以选择不同的数据处理方式。1.8StructuringElement结构元素,为二维的整数数组。IMAQ模块介绍fhinali编写2MachineVisioncontrols机器视觉中用到的一些控件,只要是对图像画面进行选择的一些工具,包括点,线和面的选择以及坐标系的设定。如图3所示2.1Point点的选择,包括两个元素的簇,分别为横坐标和纵坐标。2.2Line线的选择,包括四个元素的簇,分别为起点和终点的横坐标和纵坐标。2.3Rectangle面的选择,包括五个元素的簇,分别为对角线两点横坐标和纵坐标,以及矩形选择的角度。2.4Circle环形面,包括六个元素的簇,分别为圆心坐标,内外半径的长度以及起始角和终止角。图3二以上都是程序前面板上所用到的控件,而LabVIEW强大的图像处理功能都是通过其程序面板上的功能节点来实现的。主要的节点可以分为以下四大类,如图41ImageAcquisition2VisionUtilities3ImageProcessing4MachineVisionIMAQ模块介绍fhinali编写图41ImageAcquisition图像采集功能模块,主要是通过NI的系列图像采集板卡来获得图像。节点包括任务的建立,设备的初始化以及硬件参数的设定等功能节点。如图5图52VisionUtilities视觉应用模块,用来对图像进行一些初步的整体操作。如图6IMAQ模块介绍fhinali编写图62.1ImageManagement图像管理模块,包括建立和清除图像任务,获取图像的各类信息,图像的类型转换等功能节点。如图72.1.1Create创建一个图像任务2.1.2Dispose清除图像任务2.1.3GetImageSize获得图像的大小信息2.1.4SetImageSize设置图像的大小2.1.5GetImageInfo获得图像信息,包括图像的大小,名称,分辨率等2.1.6Copy拷贝图像2.1.7ImagetoImage一个图像映射到另一个图像上2.1.8GetOffset针对于mask而言。获得Mask在图像中的偏移量。2.1.9SetOffset针对于mask而言。设定Mask在图像中的偏移量。2.1.10CastImage图像类型的转换。2.1.11IsVisionInfoPresent判断图像中是否存在图像信息。IMAQ模块介绍fhinali编写图72.2Files图像文件模块,完成对图像文件的读写,以及图像附加信息的读写操作。图82.2.1ReadFile读取图像文件2.2.2WriteFile保存图像文件2.2.3GetFileInfo获得图像信息,包括图像的类型,分辨率大小2.2.4WriteBMPFile保存为BMP图像文件2.2.5WriteJPEGFile保存为JPEG图像文件2.2.5WritePNGFile保存为PNG图像文件2.2.5WriteTIFFFile保存为TIFF图像文件2.2.6ReadImageAndVisionInfo读取图像及其附加信息。2.2.7WriteImageAndVisionInfo保存图像及其附加信息。2.3ExternalDisplay图像的外部显示。具体功能还不太清楚。如图9所示IMAQ模块介绍fhinali编写图92.4RegionofInterestROI模块,主要完成ROI和Mask之间的转化,ROI区域的设定以及在不同坐标系下的转换。如图10图102.4.1ROIToMask2.4.2MaskToROI以上两者Mask和ROI之间的相互转换。在一些图像的分析模块中,除了要求输入图片外,还要一个Mask,即只对图片中的Mask区域进行分析,这就要求把自己选择的ROI转换为Mask。2.4.3GroupROIs把多个ROI数组转换为一个ROI区域。其中转换后的ROI区域包含原ROI数组的所有区域。2.4.4UngroupROIs为2.4.3GroupROIs的逆运算,即把一个ROI区域转换为ROI数组,数组中的每个ROI都是一个图形轮廓。2.4.5TransformROI把ROI区域从一个坐标系转换为另一种坐标系中。IMAQ模块介绍fhinali编写2.4.6ROIConversionROI和各种点、线、面等各类图形之间的转换。2.5ImageManipulation图像处理模块。包括图像的放大和缩小,平移以及旋转。如图11图112.5.1Resample重新定义图像的大小,使用此模块可以放大或缩小图像。2.5.2Expand通过调整整幅或一部分图片的分辨率,来放大图片。2.5.3Extract通过调整整幅或一部分图片的分辨率,来缩小图片。2.5.4Interlace分别提取一幅图像的奇偶像素,分成两幅图片。2.5.5Symmetry得到一幅图像的对称图像2.5.6Rotate得到一幅图像的旋转图像2.5.7Shift得到一幅图像的平移图像2.5.8Unwrap将环形的图片展开成矩形2.5.9ClipboardToImage将剪贴的数据拷贝到图像2.5.10ImageToClipboard将图像拷贝到剪贴板2.5.113DView将图像进行三维变换2.6PixelManipulation图像像素处理模块。对图像的像素直接进行操作,包括图像上点,线,面像素值的获取和设定,以及在图像中插入文本。如图12IMAQ模块介绍fhinali编写图122.6.1Getpixelvalue获得图像中某一点的像素值,仅限于灰度图像。2.6.2GetRowCol获得图像中某一行或者列的像素值,仅限于灰度图像2.6.3GetPixelLine获得图像中某一条直线的像素值,仅限于灰度图像2.6.4ImageToArray将图像转化为数组2.6.5SetPixelValue设置图像中某一点的像素值。2.6.6SetRowCol设置图像中某一行或者列的像素值2.6.7SetPixelLine设置图像中某一条直线上点的像素值2.6.8ArrayToImage将数组转化为图像2.6.9FillImage将图像中的某块区域用像素值填充2.6.10Draw在图像中绘制几何图形2.6.11DrawText在图像中添加文字2.7Overlay图像覆盖模块。可以对图像上的某一点,线,面(多边形,矩形和圆)进行覆盖。此种覆盖为非破坏性的覆盖,即不破坏原有的图像,覆盖信息可以另外和图像一起保存。如图13IMAQ模块介绍fhinali编写图132.7.1OverlayPoints在图像中覆盖一点或是一组点2.7.2OverlayLine在图像中覆盖一条线2.7.3OverlayMultipleLines在图像中覆盖多条直线或多边形2.7.4OverlayRectangle在图像中覆盖一矩形2.7.5OverlayOval在图像中覆盖一椭圆2.7.6OverlayArc在图像中覆盖一弧形2.7.7OverlayBitmap在图像中覆盖一位图2.7.8OverlayText在图像中覆盖文字2.7.9ClearOverlay在图像中清除覆盖2.7.10CopyOverlay在图像中拷贝覆盖2.7.11OverlayROI在图像中覆盖ROI区域2.7.12MergeOverlay合并图像中的覆盖2.7.13ReadImageAndVisionInfo读取图像以及图像信息2.7.14WriteImageAndVisionInfo写入图像以及图像信息上述读写图像及信息的模块,是将图像中的覆盖信息一块读取/保存的2.8Calibration校准模块。校准由于相机镜头的光学畸变而或拍摄角度引起图像变化。也包含像素坐标系和实际坐标系之间的转换节点。如图14IMAQ模块介绍fhinali编写图142.8.1LearnCalibrationTemplate对校准模块进行学习2.8.2SetSimpleCalibration对校准的设置2.8.3SetCalibrationInfo设置图像校准的信息2.8.4GetCalibrationInfo获得图像校准中的信息2.8.5ConvertRealWorldtoPixel将实际坐标系转化为图像像素坐标系2.8.6ConvertPixeltoRealWorld将图像像素坐标系转化为实际坐标系2.8.7CorrectCalibratedImage对图像进行校准2.8.8和2.8.9与2.7.13和2.7.14模块相同。可以将图像校准信息也写入文件。2.9ColorUtilities颜色应用模块。彩色图像中色彩的提取,图像中某点,线,面中色彩的设定或获取,以及不同色彩模型中的转换。如图15IMAQ模块介绍fhinali编写图152.9.1ExtractColorPlanes从彩色图像中提取各颜色分量的图像2.9.2ExtractSingleColorPlane从彩色图像中提取单个颜色图像2.9.3ReplaceColorPlane色彩的替代2.9.4GetColorPixelValue获得彩色像素点的值2.9.5SetColorPixelValue设置彩色像素点的值2.9.6GetColorPixelLine获得图像中某条直线的像素值数组2.9.7SetColorPixelLine设置图像中某条直线的像素值2.9.8ColorImageToArray将彩色图像转化为数组2.9.9ArrayToColorImage将数组转化为彩色图像2.9.10RGBToColor2将RGB制式的彩色图像转化为其它制式的彩色图像(如HSL,HSV,HSI)2.9.11ColorToRGB将其它制式的彩色图像(如HSL,HSV,HSI)转化为RGB制式2.9.12ColorValueToInteger将表示颜色的RGB三种分量转化为整数的形式2.9.13IntegerToColorValue将整数形式的颜色转化为RGB三种分量的形式3ImageProcessing图像处理模块,主要是对灰度和彩色图像的处理。如图16所示图163.1processing处理模块,完成像素值的处理。包括像素值的查表转换,灰度图像和彩色图像阀值的设定。如图17所示。IMAQ模块介绍fhinali编写图173.1.1UserLoo