版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机器视觉技术12目录1机器视觉概述2机器视觉系统构成3NI视觉平台的搭建4LabVIEW编程环境与基本操作5LabVIEW编程结构6LabVIEW数组、簇、图形编程7字符串、文件I/O和属性节点编程8图像的采集保存与读取9相机标定10图像处理11视觉分拣12基于OpenCV的视觉分拣第七章字符串、文件IO和属性节点编程37.1字符串一个字符串是指一个可显示或不可显示的ASCII字符序列,不可显示的字符如换行符、制表位等。字符串为信息和数据提供了一个独立的平台格式。图7-1为字符串函数面板。图7-1字符串函数面板第七章字符串、文件IO和属性节点编程47.1字符串以下各项列出了更多字符串的常用范围:创建简单的文本信息。以字符串的形式传输数值型数据到仪器,并重新把这些字符串转换为数字数据。存储数值型数据到磁盘。要以ASCII文件的形式存储数值型数据,必须在数值型数据写入磁盘文件之前把数值型数据转换为字符串。以对话框形式对用户做出指示或提示。在前面板中,字符串以表(table)、文档框以及标题的形式出现;在框图中,使用字符串函数对字符串进行编辑和操作。在FunctionsAllFunctionsString中找到字符串函数板,并可以以如下方式对字符串进行编辑:第七章字符串、文件IO和属性节点编程57.1字符串寻找、检索以及在一个字符串里更换字符或子串。在一个字符串里把所有的文本文档改为大写或小写。在一个字符串里寻找和检索匹配的模式。一个字符串里检索一个队列。在一个字符串里旋转和反转一个文本文档。连接两个或更多的字符串。在一个字符串里删除字符。要想在其他VI、函数以及应用中使用相同的数据,用户通常必须将数据转换为一个字符串,并将其转化为其他VI、函数以及应用中能够识别的格式,如MicrosoftExcel就期待包含定界符函数的字符串能够将数字和单词分割成数据元。第七章字符串、文件IO和属性节点编程67.1字符串下面通过一个例子来了解字符串的部分操作。要求:将一个数值转换成字符串,并把该字符串和其他一些字符串连接起来组成一个新的输出字符串。设计前面板如图7-2所示。参考图7-3设计程序框图。图7-2字符串练习前面板图7-3字符串练习程序框图第七章字符串、文件IO和属性节点编程7本练习是让两个字符串控制对象和数值控制对象可以合并成一个输出字符串并显示在字符串显示器中。数值显示器显示出字符串的长度。输出字符串是一个GPIB(IEEE488)命令字符串,它可用来与和串口仪器(RS-232或者RS-422)进行通信。其中:FormatIntoString函数(Functions»String)——在本练习中,它用于对数值和字符串进行格式化,使它们成为一个输出字符串。用变形工具可以添加三个加和输入。StringLength函数(Functions»String)——在本练习中,它用于返回一个字符串的字节数第七章字符串、文件IO和属性节点编程8执行该VI。注意,FormatIntoString功能函数将两个字符串控制对象和数值控制对象组合成一个输出字符串。把该VI保存为BuildString.vi,在下一个练习中还将用到这个VI。字符串格式的设定:选中FormatIntoString函数,单击右键,在快速菜单中选择EditFormatString,可分别对个输入的各部分格式做设定。第七章字符串、文件IO和属性节点编程97.2文件输入/输出(FileI/O)文件输入/输出(FileI/O)完成的是数据和文件之间的转换,FileI/O子模板如图7-4所示。图7-4文件输入/输出功能面板文件输入/输出功能用来解决所有的文件输人/输出问题,包括以下各方面:打开和关闭数据文件。文件中读出数据和写入数据到文件中。从电子表格中读出和写入数据。文件和目录的移动以及重命名。改变文件属性。创建、修改配置文件。第七章字符串、文件IO和属性节点编程10可以采用下面三种文件格式存储或者获得数据:ASCII字节流——如果希望让其他的软件(譬如字处理程序或者电子表格程序)也可以访问数据,就需要将数据存储为ASCII格式。为此,您需要把所有数据都转换为ASCII字符串。数据记录文件——这种文件采用的是只有G语言可以访问的二进制格式。数据记录文件类似于数据库文件,因为它可以把不同的数据类型存储到同一个文件记录中。二进制字节流——这种文件的格式是最紧凑、最快速地存储文件的格式。您必须把数据转换成二进制字符串的格式,还必须清楚地知道在对文件读写数据时采用的是哪种数据格式。大多数的文件I/O操作都包括三个基本的步骤:打开一个已有的文件或者新建一个文件;对文件进行读写;关闭文件。LabVIEW在Functions»FileI/O中提供了很多有用的工具VI。部分功能依次介绍如下:第七章字符串、文件IO和属性节点编程11WriteToSpreadsheetFileVI——用于将由单精度数值组成的一维或者二维数组转换成文本字符串,再将它写入一个新建文件或者已有文件。该VI先打开或者新建文件,之后再关闭文件。它可以用于创建能够被大多数电子表格软件读取的文本文件。ReadFromSpreadsheetFileVI——用于从某个文件的特定位置开始读取指定个数的行或者列内容,再将数据转换成二维、单精度数组。该VI先打开文件,之后再关闭文件。它可以用于读取用文本格式存储的电子表格文件。WriteCharactersToFileVI——用于将一个字符串写入一个新建文件或者已有文件。该VI打开这个文件、写入数据,再关闭文件。ReadCharactersFromFileVI——用于从某个文件的特定位置开始读取指定个数的字符。该VI先打开文件,之后再关闭文件。ReadLinesFromFileVI——用于从某个文件的特定位置开始读取指定个数的行内容。该VI先打开文件,之后再关闭文件。第七章字符串、文件IO和属性节点编程12如果想查看其他的文件I/O功能函数,请选择Function»FileI/O»BinaryFileVIs或者Function»FileI/O»AdvancedFileFunctions。下面通过一个例子,来了解向文件添加数据的方法。要求:创建一个VI,可以把温度数据以ASCII格式添加到某个文件中。该VI使用For循环产生温度数据,并将它们存储到一个文件中。在每个循环期间,都要把数据转换成字符串,添加一个逗号作为分隔符,并将字符串添加到文件中。设计前面板如图7-5所示。程序框图设计参考图7-6。图7-5文件I/O练习前面板图7-6文件I/O练习程序框图第七章字符串、文件IO和属性节点编程13前面板中包括一个数字式显示器和一个波形图。“数据点个数”控制对象指定了需要采集和写入文件的温度数据的数量。波形图表则用于显示温度曲线。将波形图表的Y轴范围设置为70.0到90.0,X轴范围设置为0到20。打开程序框图,添加For循环并增大它的面积。该VI将产生由“数据点个数”控制对象指定的个数的温度数据。在循环中加一个移位寄存器,方法是用鼠标右键单击循环边界,在快捷菜单中选择移位寄存器。这个移位寄存器中将含有文件的路径名。完成对象的连线。其中:EmptyPath常数(Functions»FileI\O»FileConstants)——用于初始化移位寄存器,以保证需要对文件写入数据时路径都是空的。会出现一个文件对话框提示输入文件名。DigitalThermometerVI(Functions»SelectaVI…)——返回一个模拟温度测量值(仿真)。FormatIntoString函数(Functions»String)——将温度数据转换成字符串,并且在数据后面增加一个逗号。第七章字符串、文件IO和属性节点编程14WriteCharactersToFileVI((Functions»FileI/O)——用于向文件写入字符串。Boolean常数(Functions»Boolean)用于将WriteCharactersToFileVI的appendtofile?输入为TRUE,这样在循环执行时新的温度数据就会加入到选中的文件中。用操作工具单击这个常数可以将它设置为TRUE。返回前面板,把“数据点个数”设置为20,执行该VI。这时会出现一个文件对话框,提示输入文件名。输入文件名以后,VI就会在每个温度数据产生时,将它写入到该文件中。把该VI保存为LabVIEW\Activity目录下的WriteTemperaturetoFile.vi。使用任意一个字处理软件,例如WriteforWindows,TeachTextforMacintosh,或者UNIX平台下的某个文本编辑器,打开该数据文件查看其内容。您可以看到文件的内容是20个用逗号分隔开的数值(准确到小数点后三位)。第七章字符串、文件IO和属性节点编程15下面通过一个例子,来了解从文件读取数据的方法。要求:目的:创建一个VI,可以从上一个练习中创建的例子中读取数据,并把这些数据显示在一个波形图形中。必须按照数据保存的格式来读取它,因为原来是用字符串数据类型,把数据保存为ASCII格式,那么就必须用一个文件I/O函数把数据作为字符串读出。前面板如图7-7所示。程序框图参考图7-8。图7-7文件写入练习前面板图7-8文件写入练习程序框图第七章字符串、文件IO和属性节点编程16前面板中包括一个字符串显示对象和一个波形图。“从文件读字符串“显示对象将从上个练习创建的文件中读出用逗号分隔开的温度数据。波形图则用于显示温度曲线。程序框图中:ReadCharactersFromFileVI(Functions»FileI/O)——用于从文件中读取数据,以及输入字符串中的信息。如果没有指定路径名称,将出现一个文件对话框提示您输入文件名。在这个例子中,无需判断需要读取的字符的个数,因为文件的字符数比默认的512要少。要从文件中读取数据,必须知道数据的存储方式。如果知道了文件的长度,就可以使用ReadCharactersFromFileVI读取指定个数的字符。ExtractNumbersVI(Examples\General\strings.llb)——用于提取由逗号、分行符号、非数值字符等分隔开的数据组成的ASCII字符串,并将它们转换成数值数组。返回前面板,执行该VI。将出现一个文件对话框,在其中选择刚才保存的数据文件,您可以看到图形中显示的数据与WriteTemperaturetoFileVI例子中显示的一样。保存该VI为TemperaturefromFile.vi,并关闭它。17目录1机器视觉概述2机器视觉系统构成3NI视觉平台的搭建4LabVIEW编程环境与基本操作5LabVIEW编程结构6LabVIEW数组、簇、图形编程7字符串、文件I/O和属性节点编程8图像的采集保存与读取9相机标定10图像处理11视觉分拣12基于OpenCV的视觉分拣第八章图像的采集保存与读取188.1采集单幅图像采集单幅图像是最基本的图像采集操作,我们通常使用IMAQdxGrab进行采集。IMAQdxGrab方式的图像采集程序框图如图8-1所示:图8-1利用IMAQdxGrab进行图像采集第八章图像的采集保存与读取198.1采集单幅图像第1步:通过IMAQdxOpenCamera.vi,打开相机。第2步:通过IMAQdxConfigureGrab.vi,配置相机准备采集。第3步:通过IMAQCreate.vi,为图像数据创建一个数据缓冲区。第4步:通过IMAQdxGrab.vi,采集图像,并把它放入之前创建好的数据缓冲区中,并放入采集图像中进行显示。第5步:图像数据缓冲区一旦释放,前面板上就看不到采集的图像了,因此通过一个延时程序,等待用户停止。第6步:调用IMAQdxCloseCamera.vi,关闭相机。第7步:调用IMAQDispose.vi,释放占有的图像数据缓冲区。第八章图像的采集保存与读取208.1采集单幅图像第1步:通过IMAQdxOpenCamera.vi,打开相机。第2步:通过IMAQdxConfigureGrab.vi,配置相机准备采集。第3步:通过IMAQCreate.vi,为图像数据创建一个数据缓冲区。第4步:通过IMAQdxGrab.vi,采集图像,并把它放入之前创建好的数据缓冲区中,并放入采集图像中进行显示。第5步:图像数据缓冲区一旦释放,前面板上就看不到采集的图像了,因此通过一个延时程序,等待用户停止。第6步:调用IMAQdxCloseCamera.vi,关闭相机。第7步:调用IMAQDispose.vi,释放占有的图像数据缓冲区。第八章图像的采集保存与读取21其中,第三步和第七步是创建图像数据缓冲区和释放图像数据缓冲区。这是因为每帧图像的数据量都特别大,如果在处理图像的过程中直接传递图像数据,则非常耗时。最好的方式是仅仅传递指向该数据缓冲区的引用。IMAQCreate.vi完成的就是创建图像数据缓冲区并返回指向该数据缓冲区的引用的过程。单幅图像采集的运行结果,如图8-2所示。其中,最下方信息分别表示分辨率、当前倍数、图像位深、灰度值和当前XY坐标。图8-2单幅图像采集第八章图像的采集保存与读取228.2连续采集图像连续采集图像只需要在采集单幅图像的基础上加入WHILE循环结构即可。下面将详述讲解如何进行连续图像采集。连续图像采集的程序框图如图8-3所示。图8-3连续采集图像第1步:通过IMAQdxOpenCamera.vi,打开相机。第2步:通过IMAQdxConfigureGrab.vi,配置相机准备采集。第3步:通过IMAQCreate.vi,为图像数据创建一个数据缓冲区。第八章图像的采集保存与读取23第4步:通过IMAQdxGrab.vi,采集图像。采集图像放在了WHILE循环内,因此将进行连续采集,直到按下停止按钮。第5步:通过VisionAcquisition可得到采集单张图像的时间。第6步:调用IMAQdxCloseCamera.vi,关闭相机。第7步:调用IMAQDispose.vi,释放占有的图像数据缓冲区。第八章图像的采集保存与读取248.3利用快速VI采集图像快速VI是将资源开启、获取、关闭包装成一个ExpressVI,帮助使用者快速完成图像采集的相关设定,直接将图像输出到Labview前面板上。快速采集VI可在【视觉与运动--》VisionExpress--》VisionAcquisition】中找到。如图8-4所示。将【VisionAcquisition】直接拖动到程序框图上,即可自动弹出启动设定界面。图8-4VisionAcquisition位置第八章图像的采集保存与读取25①设定取像来源(SelectAcquisitionSource)左侧【AcquisitionSourcesforLocalhost】中可以检测目前安装在电脑上所有相机名称,选择【NI-IMAQdxDevices】中的相机【cam0:BalslerGenICamSource】为本次取像用的相机,接着可以按下右方取像按键(分别为读取单张和连续读取),测试相机是否正常初始化并取到像;右下角是相机的基础数值。如图8-5所示。图8-5设定取像来源第八章图像的采集保存与读取26②设定取像类型(SelectAcquisitionType)共分成4种类型:取单张图像(SingleAcquisitionwithprocessing)连续取像(ContinuousAcquisitionwithinlineprocess)一次取固定张图像,边取像边处理(FiniteAcquisitionwithinlineprocessing)一次取固定张图像,当所有图像读取完后再处理(FiniteAcquisitionwithpostprocessing)如图8-6所示。图8-6设定取像类型第八章图像的采集保存与读取27这里我们先选择【连续取像】模式,然后继续往下设定。③设定取像参数「ConfigureAcquisitionSettings」可根据环境来调整相机的参数,勾选【ShowAllAttributes】可显示相机的全部参数,可以改变增益值(Gain)、Gamma、取像模式等,使图像达到理想效果。设定过程中可以同时按下右上方的【Test】来观察设定的结果,设定好后,点击Next进行下一步设定。如图8-7所示。图8-7设定取像参数第八章图像的采集保存与读取28④设定是否保存图像(ConfigureImageLoggingSettings)若将【EnableImageLogging】勾选,表示将获取到的图像储存到下方指定的文件夹中,并可设定储存的图像格式。但是,若开启此功能将降低取像速度。此项默认为不勾选。如图8-8所示。图8-8设定是否保存图像第八章图像的采集保存与读取29⑤设定输入与输出「SelectControls/Indicators」可依据需要,设定图像的输入输出参数,设置好后,按下【Finish】即可完成设定。如图8-9所示。完成上述五步操作后,在程序框图上将自动生成图像采集的程序代码,如图8-10所示。图8-9设定输入与输出图8-10快速VI自动生成的程序代码第八章图像的采集保存与读取308.4图像的保存当我们通过以上方法获得图像数据后,在接下来的图像处理中,最常见的操作就是对图像进行保存与读取。图像保存VI可在【视觉与运动--》VisionUtilities--》Files--》IMAQWriteFile2】中找到。如图8-11所示。图8-11图像文件操作VI第八章图像的采集保存与读取318.4图像的保存图像文件操作VI支持读写的图像文件格式有BMP、JEPG、JEPG2000、PNG、PNGwithVisioninfo和TIFF。这里,我们保存图片格式为PNG,实现采集一张图像并保存到指定路径(FilePath)。如图8-12所示。图8-12保存图像文件第八章图像的采集保存与读取32另一个方法实现采集图像并保存,就是利用快速采集VI,通过设置第四步中的是否保存图像,将图像保存到指定路径。如图8-13所示。图8-13保存图像第八章图像的采集保存与读取338.5图像的读取图像读取VI可在【视觉与运动--》VisionUtilities--》Files--》IMAQReadFile】中找到。程序框图如图8-14所示。本例实现读取一个文件夹下的一张图片,并显示出来。IMAQLoadImageDialog.vi会弹出一个对话框,请用户选择图像文件路径。图像文件路径获得后传给IMAQReadFile.vi,告诉IMAQReadFile.vi欲读取文件的位置。根据文件种类的不同,需要用IMAQCreate.vi创建一个与之匹配的图像缓冲区。图8-14读取图像34目录1机器视觉概述2机器视觉系统构成3NI视觉平台的搭建4LabVIEW编程环境与基本操作5LabVIEW编程结构6LabVIEW数组、簇、图形编程7字符串、文件I/O和属性节点编程8图像的采集保存与读取9相机标定10图像处理11视觉分拣12基于OpenCV的视觉分拣第九章相机标定359.1相机标定原理在图像处理中,我们最常做的就是物体尺寸的测量和定位。然而,相机采集到的尺寸是以像素值为单位。因此,我们有必要对相机进行标定,将像素值转换为常用的物理值,如毫米、厘米等单位。在标定的过程中,如果图像没有产生畸变,则可以使用标定当量进行标定,而如果图像产生畸变,且精度要求较高,则需要使用图像标定。图像标定的目的是利用给定物体的参考点坐标(x,y,z)和它的图像坐标(u,v)来确定摄像机内部的几何和光学特性(内部参数)以及摄像机在三维世界中的坐标关系(外部参数)。内部参数包括镜头焦距f,镜头畸变系数(k、s、p),坐标扭曲因子s,图像坐标原点(u0,v0)等参数。外部参数包括摄像机坐标系相对于世界坐标系得旋转矩阵R和平移向量T等参数。第九章相机标定36首先,我们来了解下视觉系统的三大坐标系:世界坐标系、摄像机坐标系和图像坐标系。如图9-1所示。其中,图像坐标系(x,y)/(u,v):其是以摄像机拍摄的二维照片为基准建立的坐标系。用于指定物体在照片中的位置。(x,y)是连续图像坐标或空间图像坐标,(u,v)是离散图像坐标系或者是像素图像坐标系。(x,y)坐标系的原点位于摄像机光轴与成像平面的焦点O1(u0,v0)上,单位为长度单位(毫米)。(u,v)坐标系的原点在图片的左上角(其实是存储器的首地址),单位为数量单位(个)。(x,y)主要用于表征物体从摄像机坐标系向图像坐标系的透视投影关系。而(u,v)则是实实在在的,我们能从摄像机中得到的真实信息。图9-1视觉系统的三大坐标系第九章相机标定37(x,y)与(u,v)存在如下转换关系:dx代表x轴方向一个像素的宽度,dy代表y轴方向上一个像素的宽度。dx、dy为摄像机的内参数。(u0,v0)称为图像平面的主点,也是摄像机的内参数。其实相当于对x轴和y轴的离散化。其可以运用齐次坐标,将上式写成矩阵形式,如下:摄像机坐标系与图像坐标系转换:摄像机坐标系:O-XcYcZc,图像坐标系:O1-XY根据三角形相似原理,有上式可表示为下面的矩阵:第九章相机标定38摄像机坐标系与世界坐标系转换:刚体变换:三维空间中,当物体不发生形变时,对一个几何物体作旋转、平移的运动,称之为刚体变换。我们想把世界坐标系下的坐标转换到摄像机坐标下的坐标,如图9-2所示,可以通过刚体变换的方式。图9-2刚体变换其中,XC代表摄像机坐标系,X代表世界坐标系。R代表旋转,T代表平移。R、T与摄像机无关,所以称这两个参数为摄像机的外参数。第九章相机标定39R为分别绕XYZ三轴旋转的效果相乘:Rx×Ry×Rz摄像机坐标系向世界坐标系的变换,包括X、Y轴和Z轴的旋转以及坐标平移,故根据以上坐标变换知识可得摄像机坐标系和世界坐标系的齐次坐标系变换矩阵:最终,我们可以将图像坐标系转换到世界坐标系,圈出的部分即为相机的内外参数。第九章相机标定409.2pointDistanceCalibration点距标定在NIVision中已经为我们准备好了标定工具ImageCalibration。该工具可以在【视觉与运动--》VisionExpress--》VisionAssistants--》ProcessingFunctions:Image--》ImageCalibration】中找到。在NIVisionAssistant里打开ImageCalibration工具,如图9-3所示。点击【NewCalibration】,即可进入标定训练接口。图9-3标定界面第九章相机标定419.2pointDistanceCalibration点距标定进入标定界面后,NIVision根据应用场景的不同,提供了5种标定方法,分别是pointDistanceCalibration,PointCoordinatesCalibration,DistortionModeling,CameraModeling,MicroplaneCalibration。如图9-4所示:图9-4相机标定初始界面第九章相机标定429.2pointDistanceCalibration点距标定本节主要介绍两种标定场景:pointDistanceCalibration(点距标定)和DistortionModeling(畸变模式)。如图9-4所示,首先在SelectCalibrationType中选择第一个PointDistanceCalibration点距标定。该标定方法是根据一个已知的距离直接将像素坐标转换到真实坐标。点击Next,进入下一步的设置。图9-5第二步SelectImageSource选择图像源第九章相机标定439.2pointDistanceCalibration点距标定如图9.5所示,要求选择图像源。图中使用标定板进行标定。NIVision提供了特定的圆形网格图案作为标定用的模板,本节也采用了同样图案的打印纸,将其粘贴到了一块硬板上,保证所有圆点处在一个平面上。圆点中心到相邻的圆点中心的距离为10mm。将粘贴了网格的硬板放置在待测量区域,并保证待测区域与硬板距离相机像头距离相等。选择好图像后,点击Next,进入下一步。图9-6第三步SpecifyReal-WorldDistance指定真实距离第九章相机标定44如图9-6所示,点距标定第三步是指定真实距离。其中上面有一条提示信息用于SpecifyadifferentscalefortheYaxis对于Y轴指定不同的比例,大概意思为对于Y轴指定一个不同的比例,当你的传感器是长方形像素时,或者你仅仅想考虑一个方向时,可以使能下面的SpecifyadifferentscalefortheYaxis选项,然后当前的点会变成X轴的点距离,点击Next时则会指定Y轴的点距离。这里为了清楚说明每一步,使能对于Y轴指定不同的比例(虽然大部分的传感器像素都是正方形的)。下面一条信息为通过点击图像选择两点,然后指定两点间的距离使用真实的单位。可以选择下面列表中的点来调整X、Y的坐标。使能对于Y轴指定不同的比例后,Step3变为指定距离在X轴上。这里我们在图像上延X轴方向找两个点(不一定非要在一条水平线上,因为Y坐标在这里是不考虑的)。图9-7第三步指定X轴上两点并指定其距离第九章相机标定45如图9-7所示,首先在图像中指定了两个点。如果单击列表中的某个点,其X的坐标是可以调整的,但是Y的表示是灰色禁止调整的。也就是指定X轴距离时,只考虑X轴的坐标。在Distance距离中,有dx即X轴的变量值,Image即显示两点在图像中的距离,RealWorld则用于指定两点的真实距离。Unit单元置顶里图像中的单位为Pixel像素,而真实距离的单位,需要由用户自己定义。可以使用下拉列表,其中有微米、毫米、厘米、米、千米、寸、码等长度单位。这里我们使用毫米单位,并且制定两点间的真实距离为10mm。点击Next进入下一步:图9-8第四步指定Y轴上两点并指定其距离第九章相机标定46如图9-8所示,指定Y轴上的两点,并且指定其真实距离。从中可以看到,点阵列表中还包含了前面的X轴上的两点。这里与指定X轴上的点时大致一样,只是这是能调整的只有点的Y坐标值,X坐标值是无法调整的,而且这里的距离中的真实值单位已经固定了不能再修改。下面在点击Next进入下一步。图9-9第五步ComputeDistortionModel计算畸变模式第九章相机标定47如图9-9所示,如果图像有较大的畸变失真,则需要使能ComputeDistortionModel计算畸变模式,然后进入后面的即便校正步骤。畸变模式稍后介绍,这里直接点击Next,进入下一步。如图9-10所示,提示信息显示选择起始标定轴并且指定X轴相对于图像的水平轴的角度。用户可以在图像中画一条线来制定起点和X轴角度。AxisOrigin轴(X)原点:指定X轴的原点。下面有User-Defined用户自定义,没有其他选项。系统默认的原点是X、Y都为0,即图像的原点。图9-10第六步SpecifyCalibrationAxis指定标定轴第九章相机标定48AxisAngle轴(X)角度:用于指定X轴的角度,有两种方式,一种是使用AngleValue角度值,在下面可以指定XAxisAngle(degrees)X轴的角度和AngleOffset角度偏移;另一种是XAxisPointX轴上的点,因为我们已经指定了X轴的原点,再加上X轴上的另一点,则利用两点连成一条直线,则可以确定X轴的直线与角度了。AxisReference轴参考方向:有两种方式,一种是X向右、Y向下;另一种是X向右、Y向上。确定好数据后,再点击Next,进入下一步:如图9-11所示,概括中显示了标定后的数据,并且提示标定已经成功学习。点击OK,进行保存。保存的图像文件类型为PNG,因为只有PNG可以包含图像的信息。至此,点距标定介绍完毕。图9-11第七步Summary概括第九章相机标定499.3DistortionModeling畸变模式畸变模式的作用是修正镜头畸变或传感器中心线不重合。如桶形、枕形变形等。如图9-12所示。选中【DistortionModel】,然后点击Next,如图9-13所示。图9-12桶形、枕形畸变图9-13畸变模式第九章相机标定509.3DistortionModeling畸变模式Step2为选择图像源,如图9-14所示,选好后点击Next。在Step3:ExtractGridFeatures中,首先利用提供的ROI工具,选择有效的图像识别范围,以减少识别误差,不选则默认为使用整个图像。下面是Selectthresholdparametersforeachgridimage选择远阈值参数对于每张栅格图像。图9-14选择图像源第九章相机标定519.3DistortionModeling畸变模式在Image中,因为只选择了一张图像,因此是灰色不可选状态。LookFor查找对象,有DarkObjects黑色目标、BrightObjects白色目标和GrayObjects灰色目标。Method为使用的阈值方法,有ManualThreshold手动阈值、AutoThreshold自动阈值、LocalThreshold局部阈值等方法。此处使用局部阈值,ROISize为兴趣区域大小,KernelSize为内核尺寸,用于指定每个像素的邻域从而计算局部阈值中像素的平均亮度值。其大小应与要分离的目标大小相同。DeviationFactor为偏差因素,用于指定NiBlack阈值算法的灵敏度,值越小对噪声越敏感。具体设置如图9-15所示。图9-15提取栅格特征第九章相机标定529.3DistortionModeling畸变模式Step4中,需要指定栅格参数。单位为毫米,如图9-16所示。图9-16指定栅格参数第九章相机标定539.3DistortionModeling畸变模式Step5为检查标定结果。拖动滑杆可以改变畸变模式,滑杆越往左,计算越快,精度越低;越往右,计算越慢,精度越高。如图9-17所示。图9-17检查标定结果第九章相机标定549.3DistortionModeling畸变模式Step6,指定标定轴方向,同点距标定一样,具体设置如图9-18所示。Step7为概括,显示了标定后的数据。并且提示标定已经成功学习。标定完成后,点击ok,即可将标定结果保存,至此便完成了相机的标定过程。图9-18指定标定轴第九章相机标定559.4尺寸检测标定完成后,我们就可以进行测量任务。这里我们通过钢板尺才比对标定前与标定后的结果。标定前,通过测量工具测得20厘米的尺寸约为634个像素点,此处是以像素为单位。如图9-19所示。图9-19尺寸测量第九章相机标定569.4尺寸检测标定后,通过测量工具测得20厘米的尺寸约为203mm,此处是以毫米为单位。如图9-20所示。因为该测量距离使我们直接画出来的,所以与实际值还有偏差。真实项目中,我们可以通过后续章节中,提取特征,找点,找直边来进行准确测量。图9-20尺寸测量57目录1机器视觉概述2机器视觉系统构成3NI视觉平台的搭建4LabVIEW编程环境与基本操作5LabVIEW编程结构6LabVIEW数组、簇、图形编程7字符串、文件I/O和属性节点编程8图像的采集保存与读取9相机标定10图像处理11视觉分拣12基于OpenCV的视觉分拣第十章图像处理58NI视觉开发模块包括NIVisionAssistant一个不需要编程就可以实现图像的分析、处理的快速成型环境,以及IMAQ视觉--拥有强大视觉处理函数的库。与其它视觉产品不同,NIVisionAssistant和IMAQ视觉的紧密协同工作简化了视觉软件的开发。NIVisionAssistant可自动生成LabVIEW程序框图,该程序框图中包含NIVisionAssistant建模时一系列操作的相同功能。打开NIVisionAssistant软件后出现欢迎界面,如图10-1所示:图10-1NIVisionAssistant欢迎界面第十章图像处理59如上图所示,在欢迎界面里有四个按钮和一个下拉菜单,其中OpenImage是打开图像:从本地或网络上打开图像文件;AcquireImage是采集图像:从相机中采集图像;SolutionWizard是解决办法向导:查看NI视觉助手中自带的例子;LanguageforGeneratedCode是生成代码语言:可选LabviewCode、CCode、.NETCode。我们通过OpenImage或AcquireImage即可打开一张图片,如图10-2所示:图10-2图像界面第十章图像处理60其中图像预览区是当选择多张图片时,可以在这里进行切换,从而验证处理程序在不同图像时是否满足处理需要。处理功能区包含了Image图像、Color彩色图、Grayscale灰度图、Binary二值图、MachineVision机器视觉、Identification识别等功能函数。处理步骤区去是显示不同的处理脚本,双击每一个步骤可以进行修改参数。图像显示区是现实原图像和选择处理函数后的图像。本章将介绍常用图像处理函数的使用方法。第十章图像处理6110.1.Image图像功能面板认知Image功能面板如图10-3所示:Image功能包含了Histogram直方图、LineProfile线剖面图、Measure测量、3DView3D视图、Brightness亮度、SetCoordinateSystem设置坐标系统、ImageMask图像掩模、Geometry几何学、ImageBuffer图像缓存、GetImage打开图像、ImageCalibration图像标定、CalibrationfromImage从图像标定、ImageCorrection图像校正、Overlay覆盖、RunLabviewVI运行LabviewVI。图10-3Image功能第十章图像处理6210.1.Image图像功能面板认知1.Histogram直方图直方图函数,从函数解释信息上看,为统计每个灰度值的像素总数并且将他们用图表显示出来。点击此函数后,进入直方图界面如图10-4所示:在彩色图像设置界面可以看到,其中有ColorMode彩色模式,默认的是RGB模式,此外还有HSL、HSV、HSI等模式。然后就是Histogram直方图,横坐标是灰度坐标,综坐标是像素数量,用于显示每个灰度值对应的像素数量所占比重(没有具体的像素数量显示,但是可以看到其所占的比重和分布情况)。因为是彩色图像,所以有三种颜色的直方图。图10-4直方图配置界面第十章图像处理6310.1.Image图像功能面板认知MappingMode映射模式可供选择的有Linear线性、Logarithmic对数两种模式。选择不同的ROI工具,选择不同的区域,有不同的结果。ROI工具如图10-5所示:图10-5ROI工具我们使用直线ROI工具,查看红色块直方图信息,如图10-6所示:图10-6红色块直方图第十章图像处理6410.1.Image图像功能面板认知2.LineProfile线剖面图LineProfile线剖面图函数用于查看一条线上的灰度值或RGB值曲线图。函数说明意思为显示图像中沿着某条线的灰度分布。此函数可以用于灰度图或彩色图像。如图10-7所示:图10-7线剖面图第十章图像处理6510.1.Image图像功能面板认知3.Measure测量计算、测量、统计关于图像中的一个ROI的相应信息。在Measure测量选项卡中,可以测量位置Position,长度Length,角度Angle,面积Area。点击此函数后,其界面如图10-8所示:在结果栏最右边有一排工具按钮,如图10-9所示,其中最上面一个是DeleteSelection删除选择,即把当前选择的测量内容(蓝底及红色十字)从结果中删除,第二个是DeleteAllResults删除所有结果(即清空所有测量),第三个是SendResultstoExcel发送结果到EXCEL中,第四是SaveResults保存结果。图10-8测量界面图10-9工具按钮第十章图像处理6610.1.Image图像功能面板认知4.3DView3D视图用于在一个三维坐标系中显示图像的光强。三维视图函数只能应用于灰度图像。因为在三维坐标系中,只有像素的X、Y坐标系(构成3D视图的水平面)以及对应点的灰度值V(构成3D视图的海拔高度),构成三维坐标系。如果再多几个颜色平面,则无法清楚的显示出其3D信息。3D视图是一个“伪三维”图像,效果如图10-10所示:第十章图像处理6710.1.Image图像功能面板认知5.Brightness亮度用于改变图像的亮度、对比度和伽马值。此函数是可以用到实际检查步骤的,用于改善图像的质量。如改变亮度、增强对比度、改变伽马值等。点击函数后,出现如图10-11所示的亮度调节选项卡,我们可以根据实际需求,改变亮度、对比度,伽马值。图10-11亮度调节第十章图像处理6810.1.Image图像功能面板认知6.SetCoordinateSystem设置坐标系统这个函数首先需要一个参考特征,这样才能用于建立坐标系,坐标系是基于其他步骤的点位置,如找边缘、找模板、粒子分析等。设定坐标系函数因为只相关于点的位置与方向,因此与图像的格式无关,彩色、灰度、二值图像等都可以使用设定坐标系。因此,我们先使用函数EdgeDetector先找到一点边缘点(函数在后面介绍),点击函数,直接在图像边缘对比强的地方画一条线ROI,大部分图像都能找到边缘点。然后点击设置坐标系统函数,如下图10-12所示:图10-12设置坐标系统第十章图像处理69如上图所示,通过函数EdgeDetector的边缘点,有一个红色的直角坐标系,这个坐标系就是点击函数后默认的建立的坐标系。在Mode坐标系的类型中,默认的是HorizontalMotion水平运动,此外还有VerticalMotion垂直运动、HorizontalandVertical水平和垂直运动、Horizontal、VerticalandAngularMotion水平、垂直带角度的运动。从图中看到,最后一个水平、垂直带角度运动的类型是灰色不可用的。这是因为前面的找边缘点的步骤只找到了点,而并没有方向,因此坐标系没有相应的角度方向参考,因此带角度的运动是不可用的。我们可以通过找边函数来得到一个方向信息,在进行设定坐标系,效果如图10-13所示。图10-13设置坐标系统第十章图像处理70设定坐标系函数,在实际测量中是非常有用的,特别是一些生产线上或大视野中的目标的定位测量上,如尺寸测量、条码识别、粒子分析等函数,当目标特征在视野的位置不确定时,这里就需要建立参考坐标系,使测量目标的ROI跟随参考点运动。而参考点的选择,通常是需要保证其在视野中一定存在且清晰容易识别,不会造成不确定性的特征,一般使用匹配等方式进行参考特征的提取,再建立参考坐标系,然后做目标特征的测量。图10-13设置坐标系统第十章图像处理7110.1.Image图像功能面板认知7.ImageMask图像掩模函数说明信息为创建一个掩模从整幅图像或一个选择的感兴趣区域(ROI)。ImageMask的作用是建立一个掩模,兴趣区域内为1,兴趣区域外为0,然后与待处理的图像相乘,使其图像兴趣区域内的图像得以保留(与1相乘),而在兴趣区域外的图像则全部变为黑色的(与0相乘)。图像掩模函数如图10-14所示:如上图所示,其中蓝色半透明的图像是被屏蔽掉的,而中间没有蓝色背景的则是保留下来的感兴趣区域。图10-14图像掩模第十章图像处理7210.1.Image图像功能面板认知8.Geometry几何学几何学的作用是修改图像的几何表示法。如图10-15所示:几何学有一个下拉列表,其中有对称、旋转、重取样三个选项。其中对称选项又有水平、垂直、中心三种对称方法。而旋转,可以指定角度,将原始图像旋转一定的角度。图10-15几何学第十章图像处理7310.1.Image图像功能面板认知9.ImageBuffer图像缓存该函数用于保存图像在缓存中并且可以取回这些图像。图像缓存的作用就是NIVision中的复制函数IMAQCopy。即建立新的图像缓存区,将当前的图像复制到新的图像缓存区存下来,当有需要调用时,可以随时调用新的图像缓存区中的图像。图像缓存函数的界面如图10-16所示:图10-16图像缓存函数界面第十章图像处理7410.1.Image图像功能面板认知如上图所示,首先选择Store保存,然后选择Buffer#1缓存1,选择好缓存后,点击OK按钮,这里在脚本区会有一个图像缓存函数,如图10-17所示:此时图像已经进行了保存,若在后续处理中需要此图片,可再次点击ImageBuffer图像缓存函数,这里就可以使用Retrieve取回操作取出保存的图片。图10-17图像缓存第十章图像处理7510.1.Image图像功能面板认知10.GetImage打开图像该函数指从文件中打开一幅新的图像。11.ImageCalibration图像标定该函数用于将像素坐标系转换成现实中的真实坐标系,从而将抽象的像素单位转换成我们熟悉的毫米、厘米、米等单位。高级的标定,还会涉及到畸变的计算,如梯形、桶形、枕形变形等。图像标定函数的具体使用方法请看相机标定章节。12.CalibrationfromImage从图像标定该函数是应用一个图像文件的标定信息到目前图像上。13.ImageCorrection图像校正该函数作用是获取已经标定过的图像中的设置来改变图像的畸变。第十章图像处理7610.1.Image图像功能面板认知14.Overlay覆盖在图像上覆盖一些信息,比如在图像上放置直线、矩形、圆等ROI工具,叠加图片,添加文字信息等,如图10-18所示:图10-18覆盖文本第十章图像处理7710.2Color彩色图功能面板认知Color功能面板如图10-19所示:如上图所示,彩色面板中共有8个函数。ColorOperators彩色运算、ExtractColorPlanes抽取彩色平面、ColorThreshold彩色阈值、ColorClassification颜色分类、ColorSegmentation颜色分割、ColorMatching颜色匹配、ColorLocation颜色定位、ColorPatternMatching颜色模式匹配。下面逐一进行介绍。第十章图像处理7810.2Color彩色图功能面板认知1.ColorOperators彩色运算在图像上进行算术和逻辑运算。如图10-20所示:图10-20对原始图像加红色常量第十章图像处理7910.2Color彩色图功能面板认知2.ExtractColorPlanes抽取彩色平面该函数的作用是从图像中抽取三种颜色平面(RGB、HSV、HSL),从而将彩色图转换成灰度图像。点击此函数,界面如图10-21所示:图10-21抽取亮度平面第十章图像处理8010.2Color彩色图功能面板认知3.ColorThreshold彩色阈值该函数作用是将彩色图像的三个平面应用阈值处理,并将结果放置到一幅8位的图像中。点击函数,进入配置界面,如图10-22所示:ColorModel:为颜色空间模式,有RGB、HSL、HSV、HSI等。PreviewColor:预览颜色。Red/Hue:红色、色调。Green/Saturation:绿色、饱和度。Blue/Luminance/Value/Intensity:蓝色、亮度、值、强度。Histogram:直方图。图10-22彩色二值化设置界面第十章图像处理8110.2Color彩色图功能面板认知通过Image面板里的LineProfile线剖面图函数测量出要提取颜色的RGB信息或者HSL信息,并将这些参数设置恰当的阈值,从而对彩色图像进行二值化处理,以达到要求。如图10-23所示,用HSL将黑色块提取出来(以绿色表示)。图10-23提取黑色第十章图像处理8210.2Color彩色图功能面板认知4.ColorClassification颜色分类颜色分类,其作用是对ROI中的颜色进行分类并判断其属于哪一类颜色。5.ColorSegmentation颜色分割颜色分割,其作用是将彩色图像中的不同颜色分离开来,以不同的灰度级别进行表示。函数说明信息为“分割一幅彩色图像”。6.ColorMatching颜色匹配该函数根据图像模板相关颜色信息来比较一个图像或者图像区域的颜色内容。这个函数不能修改图像。颜色匹配要先创建颜色模板,如图10-24所示:图10-24颜色匹配模板学习第十章图像处理8310.2Color彩色图功能面板认知创建好图像模板后,保存文件,然后在图像显示区用ROI工具选择检测区域,如果是类似的颜色,检测通过,如果颜色不一样,检测失败,如图10-25至图10-28所示:图10-25颜色匹配通过图10-26颜色匹配结果图10-27颜色匹配失败图10-28颜色匹配失败结果第十章图像处理8410.2Color彩色图功能面板认知7.ColorLocation颜色定位颜色定位,其作用是在一幅彩色图像中找到指定的颜色。函数说明信息为“定位颜色在一幅彩色图像中”。8.ColorPatternMatching颜色模式匹配颜色模式匹配,其作用是在一幅彩色图像或ROI兴趣区域中查找模板。函数说明信息为“在整幅图像或ROI中检查模板的存在性”。第十章图像处理8510.3Grayscale灰度图功能面板认知Grayscale功能面板灰度功能包含了LookupTable查找表、Filters滤波器、GrayMorphology灰度形态学、FFTFilter傅里叶滤波器、Threshold阈值、WatershedSegmentation分水岭分割、OPerators运算、Conversion转换类型、Quantify定量分析、Centroid质心、DetectTextureDefects纹理缺陷检测等函数,如图10-29所示:灰度菜单中主要包含一些用于处理灰度图像的预处理函数。这里的函数以预处理函数为主,但是也有一些测量类的函数。本章不作为重点。图10-29灰度功能第十章图像处理861.LookupTable查找表查找表(简称LUT),其作用是在图像中应用查找表来提高图像的对比度和亮度。2.Filters滤波滤波,可以有效改善图像的质量,使图像处理系统更稳定。因此,当图像质量本身并不是非常理想时,可以考虑使用滤波函数进行滤波,从而得到更加理想的图像。3.GrayMorphology灰度形态学形态学转换可以对图像的粒子进行提取和改变。主要分为两种,一种是二值形态学函数,适用于二值图像;另一种是灰度形态学函数,适用于灰度图像。使用灰度形态学函数可以用来过滤或平滑图像的像素强度。实际应用包括噪声滤波、不均匀背景校正和灰度级特征提取等。用户可以通过使用灰度形态学函数通过牺牲黑暗区域来扩大明亮区域的方法来改变区域的形状,反之通过牺牲明亮区域来扩大黑暗区域的方法也一样有效。这些形态学函数可以平滑逐渐变化的模式并提高区域边缘的对比度。第十章图像处理874.FFTFilter傅里叶滤波器使用这个函数来删除高或低频率FFT平面。去除高频噪声平滑、细节、质感和尖锐的边缘。消除低频率降低总体模式,如光强度的变化,并强调细节。5.Threshold阈值二值化图像,这里是对灰度图像进行二值化处理,彩色图像不能使用该功能。处理后图像中只有黑白两色,而不是灰度图或彩色图。6.WatershedSegmentation分水岭分割该函数在图像二值化后使用,将没有相连的物体分割处理,得到不相连物体的个数。7.Operators运算Operators运算和Color里的运算是差不多的,灰度图的运算是跟常数、灰度图像进行运算。第十章图像处理888.Conversion转换类型将灰度图由X位深度转换成Y位深度图。如将8位灰度图转换为16位深度图。将16位图转换成8位或浮点型等。9.Quantify定量分析使用这个函数来量化图像或图像区域的内容。10.Centroid质心使用这个函数来计算图像或者区域的质心。11.DetectTextureDefects纹理缺陷检测使用该函数前首先要创建纹理分类,训练纹理分类,然后测试。第十章图像处理8910.4Binary二值图功能面板认知Binary功能面板Binary功能只能处理二值化后的图像,也包含了许多的预处理函数及部分测试测量函数。其中有BasicMorphology基础形态学、Adv.Morphology高级形态学、ParticleFilter粒子过滤、BinaryImageInvertion反转二值图像、ParticleAnalysis粒子分析、ShapeMatching形状匹配、CircleDetection圆检测,如图10-30所示:图10-30Binary功能面板第十章图像处理9010.4Binary二值图功能面板认知1.BasicMorphology基础形态学影响二值图像中粒子形状。每个粒子或区域在单个基础形态学上都有影响。我们可以用这个函数完成诸如扩张、缩小目标、填充填洞、关闭粒子,平滑边界等工作,以便后续的图像定量分析。如图10-31所示:图10-31基础形态学第十章图像处理9110.4Binary二值图功能面板认知ImageSource:原始图像。Erodeobjects:腐蚀目标。Dilateobjects:膨胀目标。Open:开操作。Close:关操作。ProperOpen:适当开。ProperClose:适当关。GradientIn:梯度内,提取粒子内部轮廓。GradientOut:梯度外,提取粒子外部轮廓。AutoMedian:自动中值。第十章图像处理9210.4Binary二值图功能面板认知Thick:加粗,利用指定的掩模消除一些粒子来改变目标的形状。可用于填充洞和沿着边缘正确的角度平滑目标。Thin:变细,利用指定的掩模消除一些粒子来改变目标形状。可用于消除背景上独立的像素和沿着边缘正确的角度的平滑目标。StructuringElement:掩模。Size:掩模的尺寸。Iterations:迭代次数。Square/Hexagon:掩模形状,正方形和六边形。例如,选择Erodeobject,效果如图10-32所示:图10-32二值腐蚀功能第十章图像处理9310.4Binary二值图功能面板认知2.Adv.morphology高级形态学对图像中的粒子执行高级的算法,利用此函数可以完成去除小粒子,标记粒子,填洞等。如图10-33所示:图10-33高级形态学选项第十章图像处理9410.4Binary二值图功能面板认知ImageSource:原始图像。Removesmallobjects:去除小目标。小目标由腐蚀数(Iterations迭代)决定。Removelargeobjects:去除大目标。大目标由腐蚀数(Iterations迭代)决定。Removeborderobjects:去除图像边缘上的粒子。Fillholes:填充孔洞。例如,二值化后的图像如图10-34所示:图10-34二值化后图像第十章图像处理9510.4Binary二值图功能面板认知先选择Removesmallobject去除小粒子,效果如图10-35所示:然后选择填充孔洞,效果如图10-36所示:图10-35去除小粒子图10-36填充孔洞第十章图像处理9610.4Binary二值图功能面板认知3.ParticleFilter粒子过滤在图像二值化并经过处理后,根据设置的条件,对粒子过滤,将满足条件的粒子去除或保留。其配置选板如图10-37所示:图10-37粒子过滤选项第十章图像处理9710.4Binary二值图功能面板认知其中的参数有粒子过滤要求列表,参数范围(最小值、最大值)、坐标系(像素或真实)、当前参数显示(最小值、最大值、平均值)、动作(去除、保留)、重置、连通方法等。除了第一个可选项较多,其它参数都简单明了,不多加解释。过滤要求列表解释如下所示:CenterofMassXandCenterofMassY:粒子质心的坐标(X、Y)。FirstPixelXandFirstPixelY:粒子第一点(粒子中最上最左的点)的坐标(X、Y)。BoundingRect(Left,Right,Top,andBottom):边界矩形(左右上下)。Left:粒子最左边点坐标-X。Top:粒子最上边点坐标-Y。Right:粒子最右边点坐标-X。Bottom:粒子最下边点坐标-Y。第十章图像处理9810.4Binary二值图功能面板认知MaxFeretDiameterStartXandMaxFeretDiameterStartY:最大FERET直径开始X与Y坐标。Feret直径是指粒子周边最远两点间的距离。MaxFeretDiameterEndXandMaxFeretDiameterEndY:最大FERET直径结束X与Y坐标。MaxHoriz.SegmentLength(Left,Right,andRow):最大水平段长(左X坐标、右X坐标、Y坐标),即一个粒子中沿水平方向最长的那条线的左边点X,右边点X,以及此线的Y坐标。BoundingRect(Width,Height,andDiagonal):边界矩形(宽、高、对角线)。Perimeter:粒子的周长。由于粒子的边界是由离散的点组成的,视觉助手会二次抽样边界点来逼近一条更平滑更正确的周长。ConvexHullPerimeter:凸壳的周长。Hole'sPerimeter:粒子中所有洞的周长(和)。第十章图像处理99MaxFeretDiameter:粒子周边最远两点的距离。EquivalentEllipse(MajorAxis,MinorAxis,andMinorAxis(Feret)):等效椭圆(等效椭圆长轴长度、短轴长度以及用Feret为长轴面积与粒子相等的椭圆的短轴)。EquivalentRect(LongSide,ShortSide,Diagonal,andShortSide(Feret)):等效矩形(长边、短边、对角线和以Feret为最长边面积与粒子相等的矩形的短边)。AverageHoriz.SegmentLength:粒子水平分割长度平均值。AverageVert.SegmentLength:粒子垂直分割长度平均值。HydraulicRadius:水力半径。水力半径=粒子面积/粒子周长。WaddelDiskDiameter:Waddel圆直径。即面积与粒子相等的圆的直径。Area:粒子面积(不含洞)。Holes'Area:粒子中所有洞的面积。Particle&Holes'Area:粒子面积(包含内部的洞)。第十章图像处理100ConvexHullArea:凸壳面积。ImageArea:图像面积。NumberofHoles:粒子中洞的个数,精确到粒子中的一个像素。NumberofHoriz.Segments:粒子水平分割数。NumberofVert.Segments:粒子垂直分割数。Orientation:方向。通过粒子的质心拥有最小惯性矩的直线(与水平方向)的角度。MaxFeretDiameterOrientation:最大Feret直径的方向。RatioofEquivalentEllipseAxes:等效椭圆轴的比率=长轴/短轴。RatioofEquivalentRectSides:等效矩形边的比率=长边/短边。ElongationFactor:延长因子。最大Feret直径/等效矩形(Feret)短边,越细长的粒子,延长因子越大。CompactnessFactor:紧密因子=面积/外接矩形的面积。紧密因子范围在[0,1]之间。粒子形状越接近矩形,紧密因子越接近1。第十章图像处理101HeywoodCircularityFactor:海伍德圆度因子=粒子周长/与粒子面积相等的圆周长,粒子的形状越接近圆,海伍德圆度因子越接近1。TypeFactor:类型因子。和面积的惯性矩有关。Angle:角度。延逆时针方向旋转与X轴的角度。范围[0°,180°)。Sum...:和。各种相对于X、Y轴的动量合。MomentofInertia...:粒子质心动量。Norm.MomentofInertia...:归一化惯性矩。HuMoment...:源于普通惯性矩测量。例如,经过前面步骤的处理后,希望根据面积去除一些太大或太小的粒子,设置如图10-38所示:图10-38面积过滤后效果第十章图像处理1024.BinaryImageInvertion反转二值图像使用这个函数反转图像,使背景像素为粒子,使粒子为背景像素。5.ParticleAnalysis粒子分析使用这个函数测量图像中的粒子形状。设置面板如图3-39所示;使用SelectMeasurements按钮选择要分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蔬菜栽培工变革管理考核试卷含答案
- 半导体分立器件和集成电路装调工岗位细节考核试卷含答案
- 高三地理二轮复习 资源环境与国家安全 教学设计
- 初中八年级班会教学设计:青春期男女生交往的智慧与边界
- 高三生物《生物与环境热点拓展》二轮复习教学设计:核心素养视域下的情境构建与思维迁移
- 初中劳动技术九年级下册主题三动物养殖快乐多第一课时教学设计
- 初中九年级科学人体系统协同关系模型专题复习教学设计
- 小学六年级美术《动画片的今昔》教学设计
- 供电服务员基础在岗模拟考核试卷含答案
- 2.1细胞结构与功能第二课时教学设计-初中七年级生物
- 2026纤维素纳米材料产业化进程及潜在应用与市场推广策略
- 乡镇机关公务员考试(综合知识)练习题及答案(河南省开封市2026年)
- 风电工程安全技术规程
- 2.5 跨学科实践:制作隔音房间模型 课件(内嵌视频)2025-2026学年人教版物理八年级上册
- 秦始皇陵课件
- 船舶维修作业安全管理规范
- 女童保护课件
- 宠物超声教学课件
- DB14∕T 3151-2024 公路钢波纹管涵洞施工技术规程
- 西方现代主义文学
- 金匮要略讲义全套教学课件
评论
0/150
提交评论