目录
CogFixtureNPointToNPointTool工具
CogCreateLineBisectPointsTool工具
CogCreateLinePerpendicularTool工具
CogIntersectCircleCircleTool工具
CogIntersectSegmentCircleTool工具
CogIntersectSegmentEllipseTool工具
CogIntersectSegmentSegmentTool工具
CogDistanceSegmentCircleTool工具
CogDistanceSegmentEllipseTool工具
CogDistanceSegmentSegmentTool工具
CogLinescanDistortionCorrectionTool工具
机器视觉的概念及其功能
机器视觉是什么
机器视觉就是用机器代替人眼来做测量和判断。
机器视觉系统的特点是提高生产的柔性和自动化程度。在一些不适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精度不高,用机器视觉检测方法可以大大提高生产效率和生产的自动化程度。而且机器视觉易于实现信息集成,是实现计算机集成制造的基础技术。
总体来说,自我的理解就是:代替人眼来做一些精细繁琐的测量判断,作用基本就说提高生产效率,提高制造过程精确性,减少成本。
机器视觉和人眼的对比
机器视觉的结构组成
机器视觉的工作原理
通过镜头将被测目标转化为图像信号,投射至影像接受器件(一般为CCD元件,即电荷耦合组件)上再通过计算机进行分析处理。当不同强度的光线照射在CCD表面, CCD即发生光电效应,产生对应分布的电荷量。通过模数转换即可得到对应的数字量。
工业相机
工业相机简介及与普通相机的区别
工业相机(俗称:工业摄像机)是机器视觉系统的重要组成部分,其最本质的功能就是通过CCD或CMOS成像传感器将镜头产生的光信号转变为有序的电信号,并将这些信息通过相应接口传送到计算机主机。
工业相机的主要参数
传感器尺寸:在相素不变的情况下,相机传感器尺寸越大,噪点控制能力越强,因为单个感光元件之间的间距越大,相互之间的信号干扰越小。(下图为工业上一般常用的传感器尺寸)
相机传感器尺寸和镜头的匹配的使用技巧:在选用相机和镜头时,一般遵循“镜头最大兼容CCD尺寸>=相机芯片尺寸”的原则。
分辨率:相机每次采集图像的所有像素点数(Pixels) 即为相机分辨率。分辨率由相机所采用的芯片分辨率决定,是芯片阵列排列的像元数量,对于面阵相机来说水平分辨率和垂直分辨率相乘即为相机的分辨率。目前常用的相机分辨率有30万,80万,130万,200万,500万等
帧率/行频:相机采集传输图像的速率,对于面阵相机一般为每秒采集的帧数(Frames/Sec.);对于线阵相机为每秒采集的行数(Hz)。
帧:相机每秒最多可以拍摄的照片张数。
工业相机的选择
选择工业相机前,首先要清楚自己的检测任务,是静态拍照还是动态拍照,拍照的频率是多少,是做缺陷检测还是尺寸测量,或者是定位,产品的大小(视野)是多少,需要达到多少精度,所用软件的性能,现场环境情况如何,有没有其它的特殊要求等。根据检测任务的不同,根据产品的大小、需要达到的分辨率,以及所用软件的性能可以计算出所需工业相机的分辨率。现场环境首先要考虑的是温度、湿度、干扰情况以及光照条件等因素来选择不同的工业相机。
工业相机镜头
镜头的成像原理基本和透镜一样,镜头由光圈环和聚焦环组成。
光圈环控制镜头入光量的光学装置,聚焦则是成像的必要条件。
此外,工业镜头还需要光源的处理,理想的光源应该是均匀、明亮、稳定的,光源可以照亮目标,提高亮度;形成有利于图像处理的效果;克服环境光干扰,保证图像稳定性
机器视觉软件VisionPro
图像处理是机器视觉系统中至关重要的组成部分,视觉软件通过对图像进行处理、分析、识别等实现对特定目标自动化检测
图像采集处理的基本步骤:
采集图像、图像预处理、图像分析、结果输出
平台有众多,例如:VisionPro,eVision,Halcon,CVB,Labview,OPCV等。
VisionPro
CogJob可以多添加,默认是有一个
以上就是刚进入VisionPro的基本界面,不知道按什么可以先点击一下工具提示符
VisionPro保存项目
VisionPro有三种保存项目的形式,且三种保存方式的形式不一样且打开方式也不一样
1. QuickBuild 应用程序
2. CogJob作业
3. ToolBlock
并且这三种形式的后缀名都是:vpp,以下图片是前两种保存的形式,第三种需要拖个工具ToolBlock,在ToolBlock界面中选择保存ToolBlock,打开同理找打开ToolBlock即可,这里就不做截屏查看了
VisionPro工具
VisionPro怎么添加工具
VisionPro中工具的使用
在这里,给大家一张图片(此图为网图,这里做个大致了解)
无分类
CogAcqFifoTool工具
VisionPro利用Acquisition FIFO(先进先出)队列来获取图像。要获取图像,需要向FIFO发送一个取像请求,取像请求发送后,在获取图像过程中,你可以处理其它任务,也可以等待图像获取完成再进行其它任务。Acquisition FIFO首先处理最早的取像请求,并将在取像过程中发送的请求队列,在取像完成时相应的取像请求将从取像队列中移除。
连接相机时候要先给相机接入线和电源,并给电脑改成手动网段,网段和相机保持一致,可以根据Cognex GigE Vision Configurator来查看相机情况
CogPMAlignTool工具
训练一个图像 然后再在其他图像或者同一幅图像的其他位置去寻找该图像。在这个过程中你可以得到1.图像尺寸变化2. 角度变化 3.其他的综合因素。
图像:主要有输入图像 训练图像 和 最后输出图像
选择模板区域的方式有两种:
1.直接框选,在区域训练和原点里面直接加选择图像框选想要匹配的对象(适合背景干扰较少的图像)
2.是区域掩膜(适合背景有干扰的图像),在框选区域里面再筛选不需要的部分进行掩膜,增加准确度。
主要有限制匹配得分、角度范围、缩放范围等
1.查找概数:指定结果总数,可能有时一个图里面要匹配出多个模板,这个概述就要改变。
2.接受阈值:指定结果分数的接受阈值。仅接受分数大于或等于此值的结果
3.计分时考虑杂斑:仅适用于Patmax,如果选中,背景噪音以及杂点会拉低得分,否则得分会忽略背景干扰而升高
4.角度和缩放上下限制:尽量不使用标称值改变,而用上下限制决定搜索对象的可接受范围,这边的角度尽量调整为-180~180度。
CogImageFileTool工具
CogImageFileTool工具可以用来将单张图片或idb格式的图片数据库读入内存,可以作为没有相机时的其他工具的图片来源。
CogCNLSearchTool工具
CogCNLSearchTool通过在图像中查找和已训练的模型面积相似的区域来定位特征,如果是查找到单个特征,则说明面积最相似的区域具有全局相似性,其即为要查找的特征;如果是查找到多个特征,如果这些特征和已训练的面积有一定程度的接近,则说明这些位置的特征比其领域的特征与易训练模型的相似度大,具有局部相似性。
可以通过调节查找结果个数和接收阈值来确定局部特征相似度和个数。
可以把找到特征的XY输出到CogFixtureTool来寻找坐标系。
CNLSearchTool有线性查找和非线性查找算法,在利用工具进行模型查找的时候首先进行算法选择。
线性查找算法适用于模型图像和查询图像之间有线性亮度变换的情况,如果设置为线性查找算法,CNLSearch对待查询图像中的和模型图像像素非常像素的地方进行查询,因为这种查询方式下,由于模型图像和查询图像之间的相似度由两者之间灰度关联系数决定,所以,这种方式又叫做光强关联查找算法。
非线性查找算法适用于模型图像和查询图像之间没有亮度变换的情况,这种算法的原理是通过判断模型图像与查询图像中边缘部分和非边缘部分的相似程度来确定模型,因为这种算法是通过查找边缘特征而非像素特征,所以这种算法对应亮度存在线性和非线性变换的场合都适用。
CogBlobTool工具
斑点分析工具,可以检测和定位图像中某一灰度范围内的形状未知的特征。通过斑点分析,可以为我们得到图像某一特征是否存在、数量、位置、形状、方向等信息。简单理解就是将一幅灰度图像,根据用户选定的灰度等级进行分割。一般用在没有特定的图形轮廓,但是可以通过明暗提取特征的应用。
CogCaliperTool工具
CogCaliperTool工具可用来测量物体的宽度,边缘或特征的位置,边对的位置及宽度等。与其他视觉工具不同的是,CogCaliperTool 工具需要预先知道待测边缘或特征的大概位置和特点。CogCaliperTool 的一个典型应用就是获取待测对象某一特征的精确位置。
参数设置
(1) 设置投影区域
应用CogCaliperTool 的第一步就是在待测位置设定一个投影区域,CogCaliperTool在投影区域内检测边缘信息上一般投影区域包含了感兴趣特征,投影操作综合投影区域内的所有信息,增强与投影方向平行的边缘特征并减弱噪声的影响。
(2) 设置基本参数
●边缘模式:可设置为查找单个边缘或边缘对。
●边缘极性:为了确保CogCaliperTool工具找到的边符合我们的期望,可以设置边缘极性( 从暗到明或从明到暗)、边缘相对于原点的位置、以及边对的宽度等参数。
●对比度阈值:小于对比度阈值的边会被忽略,大于对比度國植的边被保留。
●最大结果数n:只从备选边种保留最强n条边,如果备选边不足n,则全部保留。
●过滤一半像素:此参数主要用于边缘筛选,其目的是消除噪声和增强峰值。
CogDataAnalysisTool工具
CogDataAnalysisTool工具可以设定公差范围,来对其他视觉工具产生的数据进行逻辑判断,并可以进行统计分析。对于输入的每一个数据,都可以设定单独的阈值。
CogDataAnalysisTool 工具允许您定义一组标准,将工具组的最后一次运行判断为通过、警告或拒绝。使用结果分析,您可以组合来自一个、多个或所有视觉工具的结果,并生成一个中间结果,该结果可用于判断应用程序是否生成警告或拒绝状态
结果分析工具支持大量的操作可以执行的结果,包括运算(加、减、乘、除),数值比较(小于,小于或等于,等于,大于,等等),字符串比较(区分大小写的平等,不分大小写),逻辑(或者,XOR,不是),vector-to-scalar或减少逻辑(或者和见面),和数学(ABS、倍根号)
CogResultsAnalysisTool工具
利用CogResultsAnalysisTooI具 可以定义一个判断标准,以使ToolGroup或ToolBlock给出 “Accept” 、“Warning” 、或者 “Reject” 的最终运行结果。这个工具只在QuickBuild使用,但没有编程接口,不能用在程序中。在QuickBuild中双击CogResultsAnalysisTool 工具,可打开其编辑窗口。
为了有一个判断标准,你要首先在对话框中的设置面板中添加一个表达式,为了有操作对象,你需要添加变量,用来接收数据。
有了表达式和变量,就可以产生一个布尔结果。每个表达式可以有一个或两个参数,参数的类型可以有如下几种:
常量: 可以指定一个数值、字符串、布尔常量来作为表达式的参数,例如,你可以将一个工具的运行
结果和常量5进行比较,或者和字符串常量cognex”进行比较,或者和布尔值ture 进行比较。
变量: 也可也将两个数值变量、字符串变量、布尔变量进行比较。
向量: 向量指的是将多个数据以数组的形式传递给表达式,从而得到多个结果。
CogPatInspectTool工具
PatInspect主要用于缺陷检测,例如印刷字符检测、部分缺失或者明暗变换、激光打标内容检测等,该检测方法对光照的稳定性要求较高,视野内的光照不均匀极易造成误判与过杀。通过将当前图像与“训练图像”对比,获取“原始差异图像”,再将“原始差异图像”与“阈值图像”进行对比,进而获取“阈值差异图像”得到最终的当前图像与训练图像的差异,通常差异区域为缺陷所在。
CogSearchMaxTool工具
工具原理:
该SearchMax工具结合了PMAlign和CNLsearch工具的优缺点;
使用归一化相关搜索匹配功能
通过颜色特征来寻找目标物体;
工具使用场合:彩色图像、小图案(特征少的图像)、包含纹理图像、图像倾斜
CogSearchMaxTool是一个专门的查询工具,其综合CogPMAlignTool工具和CogCNLSearchTool工具的特性。与CogPMAlignTool 工具和CogCNLSearchTool工具一样,其提供训练和查找模型的功能,其采用和CogCNLSearchTool同意的归一化查找方法,同时又和CogPMAlignTool工具一样,能够查找带旋转角度和大小有变换的模型。与CNLSearch工具相比,CogSearchMaxTool支持彩色图像模型训练与查找。与CogPMAlignTool工具相比,其模型查询的速度和准确性较低,但是CogPMAlignTool具有以下CogPMAlignTool所不具备的功能。
1)其支持彩色图像模型的训练和查询;
2)其支持小模型或模型图像的训练,小图像包含的特征较小,CogPMAlignTool工具有可能不支持。
3)能够查找倾斜的模型
CogToolBlock
利用CogToolBlock工具,可以根据功能来组织视觉工具,创建反复利用的模块,为复杂的视觉逻辑任务提供简单的接口.
本人一般是用来写c#脚本的
CogToolGroup
与CogToolBlock类似,CogToolGroup也可将工具分组,但是CogToolGroup的输入输出终端必须和其他视觉工具相联系,只有往其中添加视觉工具才能添加相应的输入输出终端,例如,想把CogBlobTool工具找到Blob的格式添加到输出终端,在添加CogBlobTool工具之前这个终端是找不到的。
Calibration & Fixturing
CogCalibCheckerboardTool工具
在视觉应用中,通常测量和定位结果有实际意义,CogCalibCheckerboardTool通过标定板来建立像素坐标和实际坐标之间的2D转换关系,然后将这种坐标转换关系附加到实测图的坐标空间树种。因此,视觉工具便可输出视觉物理单位的测量结果。CogCalibCheckerboardTool可以使用的定位板有两种,一种是棋盘格标定板,一种是圆点标定板。
1)将标定板图像传递给CogCalibCheckerboardTool的Current.Inputimage;
2)点击"抓取校正图像",将待校正图像从Current.Inputimage传递给Current.CalibrationImage
3)选择不同的校正工具,比如棋盘格或者详尽棋盘格等,然后点击“计算校正”,查看校正结果
4)运行工具,生产校正空间。
CogCalibNPointToNPointTool工具
ogCalibNPointToNPointTool工具两组点来校正图像,一组点为像素坐标点,另一组点是像素坐标点对应的物理坐标点,此工具用这两组点计算一个最佳的2D转换,并将此2D转换保存工具中,在此工具运行的时候将此2D转换添加到输入图像的坐标空间树中,并输出校正后的图像。
CogCalibNPointToNPointTool工具的使用可以分为以下几步:
1)通过CogPMAlignTool工具或CogBlobTool工具等工具获取图像中的坐标点;
2)将像素坐标点和其对应的物理坐标点传递给工具;
3)设置坐标原点。
CogFixtureNPointToNPointTool工具
CogFixtureNPointToNPoint可以利用两组点来建立定位坐标系,其中一组点来自非定位坐标系,一般用像素坐标点表示这些像素坐标点的获取是通过其他视觉工具,另一组点的来源有两种方式,一种是通过基准图像方式获取,另一种是通过几何测量获取。根据定位坐标点来源的不同,可以将此工具的定位方式分为基准定位和几何定位两种。
CogFixtureTool工具
CogFixtureTool是另一种建立定位坐标系的工具,也是最长用的,在使用此工具建立定位坐标系之前,需要提前获得一个2D转换关系,2D转换关系的通过其他工具获取,其主要任务:
1)一个往坐标空间树种添加一个定位坐标系,需设定定位坐标系的名称;
2)建立一个定位后的输出图像提供其他工具调用,输出图像的像素和输入图像完全相同,但坐标空间可以选择为定位空间或者非定位空间。
Color
CogColorExtractorTool工具
CogColorExtractorTool工具为颜色提取工具,输入图像为RGB彩色图像,输出一个灰度图像和一个彩色图像,输出的彩色图像包含所要提取的颜色
CogColorExtractorTool工具的使用步骤:
1)、为工具CogColorExtractorTool提供彩色输入图像;
2)、双击打开CogColorExtractorTool工具;
3)、添加颜色提取区域,设置区域形状,并框选要提取的颜色,点击接受
4)、设置提取颜色的操作类型,可选择Add或Subtract;
CogColorMatchTool工具
CogColorMatchTool工具将彩色图像中某一区域的颜色和事先提取图像表中的每一个颜色对比,得到一组得分,得分表示和此种颜色匹配的程度,得分越高说明颜色越接近,运行此工具的时候,将返回得分最高的颜色。简单来说,此工具为颜色提取工具,输入图像为RGB彩色图像,输出一个灰度图像和一个彩色图像,输出的彩色图像包含所要提取的颜色
CogColorMatchTool工具采用单一颜色进行匹配,在获取一定区域内的颜色之后,会见区域内的颜色求平均值,然后用这个平均值进行匹配,所以,如果说提取的区域内的颜色具有单一或接近统一的颜色时,匹配的效果会稳定,对应一些颜色不单一的图像,则需要使用CogCompositeColorMatchTool工具进行颜色匹配。
设置提取颜色的操作类型,可以选择添加(Add)或者取消(Subtract)
CogColorSegmenterTool工具
CogColorSegmenterTool是IG彩色图像分割工具,用一定的颜色阈值将彩色进行分割,输出二值化的图像,在阈值范围内的区域像素值为1,不在阈值范围内的像素值为0。
例如下图匹配红色区域,分段图像
CogCompositeColorMatchTool
与CogColorMatchTool工具一样,CgCompositeColorMatchTool工具将彩色图像中某一区域的颜色和事先提取的参考图像表中的每一个颜色对比,得到一组得分,得分表示和此种颜色匹配的程度,得分越高说明颜色越接近,运行此工具的时候,将返回得到最高的颜色。但CogColorMatchTool工具不同的是,CgCompositeMatchTool匹配的时候不是yoga的颜色的平均值,而用的是颜色的分布情况。这种匹配对于一些具有符合颜色的图像非常有用。
Geometry -Creation
CogCreateCircleTool工具
CogCreateCircleTool能够根据提供的圆形坐标、半径等信息在图像找那个创建一个圆,并将创建的圆在终端输出。作用就是在输出里面得到自己想要的circle变量。
CogCreateEllipseTool工具
CogCreateEllipseTool工具能够根据提供的中心点坐标、长半轴、短半轴、旋转角度等新创建一个椭圆,并将所创建的椭圆在终端输出。作用就是在输出里面得到自己想要的Ellipse变量
CogCreateLineBisectPointsTool工具
CogCreateLineBisectPointsTool工具根据两点创建两点所连接限度的垂直平分线、并将创建的垂直平分线在终端输出
当然也可以利用找线工具等给对应参数传过去创建两点之间的平分线
CogCreateSegmentTool工具
CogCreateSegmentTool通过两点创建一条线段,并将此线段和经过此线段的直线在终端输出。
其中,CogPMAlignTool和CogFixtureTool用来定位,CogFindCircleTool1和CogFindCircleTool2用来查找两个圆,并将圆心坐标传递给CogCreateSegmentTool工具,CogCreateSegmentTool工具创建通过两个点创建一条线段,显示在图像窗口,并将线段和经过线段的直线在终端输出。
CogCreateLineParallelTool工具
CogCreateLineParallelTool工具通过一点创建已知直线的平行线,并将创建的直线在终端输出
CogCreateLinePerpendicularTool工具
通过一个点和一条线来创建垂直直线,CogCreateLinePerpendicularTool工具通过已知点创建已知直线的垂线,并将所创建的直线在终端输出。
如上图,其中CogPMAlignTool和CogFixtureTool用来定位,CogFindCircleTool查找圆并传递给圆心坐标给CogCreateLinePerpendicularTool,CogFindLineTool查找直线并传递到的直线给CogCreateLinePerpendicularTool,CogCreateLinePerpendicularTool工具创建一条直线,此直线过圆心坐标并和垂直于已知直线。
CogCreateLineTool工具
CogCreateLineTool根据一个点和旋转角度创建一条直线,并将这条直线在终端输出,和Fitline要做个区分,Createline是通过一个点和旋转度来创建一个line变量的。
CogCreateSegmentAvgSegsTool工具
用两个线段X1,X2创造一个完全是这两个线段平均值的线段X0
即:
起点坐标X0=(X1+X2)/2
终点坐标X0=(X1+X2)/2
旋转度X0=(X1+X2)/2
Geometry - Finding和Fitting工具
CogFindCircleTool工具
找圆工具,找到一个圆区域。输出为该圆区域的参数:圆心位置(基于Fixture坐标),还有 半径等。输出的区域可以作为其它工具的输入区域参数。
CogFindLineTool工具
CogFindLine' ToolI具用来查询边界直线,其原理是通过一系列的卡尺工具来定位边界边,然后利用这些边界点弥合成一条直线,这条直线代表物体的边界线。
CogFitCircleTool 工具
CogFitCircleTool是圆弥合工具,能跟用户提供的一些二维坐标点弥合成一个圆,并将弥合的圆及其圆心、半径在终端输出。CogFitCircleTool工具至少需要不再直线上的3个点才能成功弥合圆。
CogFitEllipseTool工具
CogFitEllipseTool是椭圆弥合工具,能够根据用户提供一些二维坐标点弥合成一个圆,并将弥合的椭圆在终端输出,CogFitEllipseTool工具至少需要不再直线上的5个点才能成功弥合椭圆。
CogFindEllipseTool工具用来查找椭圆,它与CogFindCircleTool、CogFindCornerTool一样,需要预先知道椭圆的大概位置,然后再椭圆的大概位置放在椭圆弧,可以设置椭圆弧的起始角和终止角、中心点坐标、长短轴半径、卡尺数量等参数。卡尺区域在椭圆弧上均匀分布,每一个卡尺上会找到一个椭圆的边界点,CogFindEllipseTool工具根据这些边界点弥合成椭圆,然后将弥合的椭圆以及椭圆的中心点、长短轴半径、选择角度等参数在终端输出。
CogFitLineTool工具
CogFitLineTool是直线弥合工具,更根据提供的一系列二维坐标点弥合成一条直线,并将直线在终端输出,CogFitLineTool工具至少需要两个坐标点才能够弥合直线。
Geometry - Intersection
CogIntersectCircleCircleTool工具
CogDistanceCircleCircleTool工具从输入终端接收两个圆,求出这两个圆之间的距离,并将两圆之间的距离、以及两圆之间距离最短的两个点在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1、CogFindCircleTool1用来查找两个圆;CogDistanceCircleCircleTool工具接收CogFindCircleTool1和CogFindCircleTool2查找到的圆,求取这两个圆之间的距离,并求取两圆上距离最短的两个点的坐标。可在CogDistanceCircleCircleTool工具的结果选项板中查看两圆间的距离。
CogIntersectLineCircleTool工具
CogIntersectLineCircleTool工具从终端接收一条直线和一个圆,求取直线和圆的交点,并在终端输出交点个数和坐标值。
其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1、CogFindCircleTool2查找2个圆;CogFitLineTool工利用2个圆的圆心弥合成一条直线;CogIntersectCircleCircleTool1工具接收CogFindCircleTool1输出的圆和CogFitLineTool1输出的直线,求取这直线和圆的交点。可在CogIntersectLineCircleTool工具的结果选项板中查看交点个数及交点坐标。
CogIntersectLineEllipseTool工具
CogIntersectLineEllipseTool工具从终端接收一条直线和一个椭圆,求取直线和椭圆的交点,并在终端输出交点个数和坐标值。
其中CogPMAlignTool1和CogFixtureTool1用来定位,CogToolBlock1利用输出终端输出5个坐标点,CogFitEllipseTool1工具接收CogToolBlock1输出的坐标点弥合成一个椭圆,CogFindCircleTool1、CogFindCircleTool2查找2个圆,CogFitLineTool1利用2个圆的圆心弥合成一条直线,CogIntersectLineEllipseTool工具接收CogFitEllipseTool1输出椭圆和CogFitLineTool1输出的直线,求取这直线和圆的交点。可在CogIntersectLineCircleTool工具的结果选项板中查看交点个数及交点坐标值。
CogIntersectLineLineTool工具
CogIntersectLineLineTool工具从终端接收两条直线,求取这两条直线的交点,并在终端输出交点的坐标值。CogPMAlignTool1和CogFixtureTool1用来定位;CogFindLineTool1和CogFindLine2用来查找两条直线;CogIntersectLineLIneTool工具接收CogFindLIneTool21和CogFindLineTool2输出的两条直线,并求取两直线的交点。
CogIntersectSegmentCircleTool工具
检测线段与圆是否相交
CogIntersectSegmentEllipseTool工具
检测线段与椭圆是否相交
CogIntersectSegmentLineTool工具
检测线段与线是否相交
CogIntersectSegmentLineTool工具从终端接收一条线段和一条直线,求取线段和直线的交点,并在终端输出交点的坐标值。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1和CogFindCircleTool2用来查找两个圆;CogCreateSegment1接收CogCreateSegmentTool1输出的线段和CogFindLineTool1查找到的直线,求出线段和直线的交点,并在终端输出交点坐标。可在CogIntersectSegmentLineTool1工具的结果选项板中查看交点坐标值。
CogIntersectSegmentSegmentTool工具
CogIntersectSegmentSegmentTool工具从终端接收两条线段,求取两线段的交点,并在终端输出交点的坐标值。其中CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1和CogFindCircleTool2用来查找两个圆;CogCreateSementTool1接收CogFindCircleTool1和CogFindCircleTool2的圆心坐标创建一条线段;CogToolBlock1通过输出终端提供两个点坐标,CogCreateSegmentTool2接收CogToolBlock1工具提供的点坐标,创建一条线段;CogIntersectSegmentSegmentTool工具接收CogCreateSegmentTool1和CogCreateSegmentTool1创建的线段,求两线段的交点,并在终端输出交点坐标。可在CogIntersectSegmentSegmentTool工具的结果选项板中查看交点坐标值。
Geometry - Measurement
CogAngleLineLineTool工具
CogAngleLineLineTool工具从输入终端接收两条直线,输出两条直线之间的角度,并将角度值在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindLineTool1、CogFindLineTool2用来查找两条直线;CogAngleLineLineTool工具接收CogFindLineTool1和CogFindLineTool2查找到的直线,求取这两条直线的交点。可在CogAngleLineLIneTool工具的结果选项板中查看这个角度值。
CogAnglePointPointTool工具
CogAnglePointPointTool工具从输入终端接收两个点坐标,求出这两个点坐标之间连线和图像坐标洗的夹角,并将角度值在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1、CogFindCircleTool1用来查找两个圆;CogAnglePointPointTool工具接收CogFindCircleTool1和CogFindCircleTool2查找到的圆的圆心坐标,求取这两个坐标点的连线和图像坐标系的夹角。可在CogAnglePointPointTool1工具的结果选项板中查看这个角度值。
CogDistanceCircleCircleTool工具
CogDistanceCircleCircleTool工具从输入终端接收两个圆,求出这两个圆之间的距离,并将两圆之间的距离、以及两圆之间距离最短的两个点在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1、CogFindCircleTool1用来查找两个圆;CogDistanceCircleCircleTool工具接收CogFindCircleTool1和CogFindCircleTool2查找到的圆,求取这两个圆之间的距离,并求取两圆上距离最短的两个点的坐标。可在CogDistanceCircleCircleTool工具的结果选项板中查看两圆间的距离。
CogDistanceSegmentCircleTool工具
CogDistancePointSegmentTool工具从输入终端接收一条线段和一个圆,求取线段上的点与圆上的点之间的最短距离,并求取距离最短时线段和圆上的点坐标,将最短距离及点坐标值在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1、CogFindCircleTool2和CogFindCircleTool3查找三个圆;CogCreateSegmentTool1工具接收CogFindCircleTool1、CogFindCircleTool2查找到的两圆的圆心,创建一条线段;CogDistanceSegmentCircleTool工具接收CogFindCircleTool3查找到的圆和CogCreateSegmentTool1创建的线段,求取圆上的点与线段上的点之间的最短距离,并求取距离最短是线段中查看距离值及点坐标。
CogDistanceLineCircleTool工具
CogDistanceLineCircleTool工具从输入终端接收一条直线和一个圆,求出圆上的点到直线的最近距离,并将圆到直线的最短距离,以及距离最短的两个点在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindLineTool1用来查找一条直线;CogFindCircleTool用来查找一个圆;CogDistanceLineCircleTool工具接收CogFindLineTool1查找到的直线和取距离最短的两个点的坐标。可在CogDistanceLineCircleTool工具的结果选项板中查看最短距离即点坐标值。
CogDistanceLineEllipseTool工具
CogDistanceLineEllipseTool工具从输入终端接收一条直线和一个椭圆,求出椭圆上的点到直线的最短距离,并将圆到直线的最短距离,以及距离最短的两个点在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindLineTool1查找一条直线;CogToolBlock1通过输出终端提供5个点坐标;CogFitEllipseTool1接收CogToolBlock1提供的5个点坐标弥合成一个椭圆;CogDistanceLineEllipseTool工具接收CogFindLineTool1查找到的直线和CogFitEllipseTool1弥合的椭圆,求出椭圆上的点到直线的最短距离,并求取距离最短的两个点的坐标。可在CogDistanceLineEllipseTool工具的结果选项中查看最短距离即点坐标值。
CogDistancepointCircleTool工具
CogDistancepointCircleTool工具从输入终端接收一个点和一个圆,求点到圆的最短距离,并将圆到直线的最短距离,以及圆上到已知点距离最短的点在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定;CogFindLineTool1和CogFindLineTol2用来查找两条直线;CogIntersectLineLineTool1用来求取CogFindLineTool1和CogFindLineTool2查找到的两直线的交点;CogFindCircleTool1用来查找一个圆;CogDistancePointCircleTool1工具接收CogIntersectLineLineTool1输出的交点和CogFindCircleTool1查找到的圆;求出点到圆的最短距离,并求取和已知点的距离最短的圆上的点的坐标。可在CogDistanceLineCircleTool工具的结果选项板中查看最短距离及点坐标值。
CogDistancePointEllipseTool工具
CogDistancePointLineTool工具
CogDistancePointLineTool工具从输入终端接收一个点和一条直线,求出点到直线的最短距离,并将点到直线的最短距离,以及值上到已知嗲的距离最短的点在终端输出。其中,CogPMAlignTool1和CogFixtuTool1用来定位;CogFindCicleTool1查找一个圆;CogFindLineTool1用来查找一条直线;CogDitancePointLineTool工具接收CogFindCircleTool1查找到的圆的圆心坐标和CogFindLineTool1查找到的直线,求出点到直线的最短距离,并求取距离最短的时直线上的坐标点。可在CogDistancePointLineTol工具的结果选项板中查看最短距离及点坐标值。
CogDistancePointSegmentTool工具
CogDistancePointSegment工具从输入终端接收一个点和一条线段,求取点到线段的最短距离,并求取距离最短时线段上的点的坐标,将最短距离及点坐标值在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1、CogFindcircleTool2和CogFindCircleTool3查找三个圆;CogCreateSegmentTool1工具接收CogFindCircleTool1、CogFindCircleTool2查找到的两圆的圆心,创建一条线段;CogDistancePointSegmentTool工具接收CogFindCircleTool3查找到的圆的圆心和CogCreateSegmentTool1创建的线段,求取点到线段的最短距离,并求取距离最短是线段上的坐标值。可在CogDistancePointSegmentTool工具的结果选项板中查看距离值及点坐标。
CogDistanceSegmentEllipseTool工具
线段到椭圆的最短距离
CogDistanceSegmentLineTool工具
CogDistanceSegmentLineTool工具从输入终端接收一条线段和一条直线,求取线段上的点与直线上点的最短距离,并求取距离最短时线段和直线上的点坐标,将最短距离及点坐标值在终端输出。其中,CoPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1、CogFindCircleTool2查找两个圆;CogCreateSegmentTool1工具接收线段;CogFindLineTool1查找一条直线;CogDistanceSegmentLineTool工具接收CogCreateSegmentTool1创建的线段和CogFindLineTool1查找的直线,求出线段上的点与直线上的点之间的最短距离,并求取距离最短时段和椭圆上的点坐标值。可在CogDistanceSegmentLineTool工具的结果选项板中查看距离及点坐标。
CogDistanceSegmentSegmentTool工具
CogDistanceSegmentSegmentTool工具从输入终端接收两条线段,求取两线段上点之间的最短距离,并求取距离最短时两端上的点坐标,将最短距离及点坐标在终端输出。其中,CogPMAlignTool1和CogFixtureTool1用来定位;CogFindCircleTool1、CogFindCircleTool2查找两个圆;CogCreateSegmentTool1工具接收CogFindCircleTool1、CogFindCircleTool2查找到的两圆的圆心,创建一条线段;CogFindLineTool查找一条直线,输出弥合直线的点构成的线段;CogDistanceSegmentLineTool1工具接收COgCreateSegmentTool1创建的线段和CogFindLineTool1输出的线段,求出两线段上的点之间的最短距离,并求取距离最短时两线段上的点坐标值。可在CogDistanceSegmentSegmentTool工具的结果选项板中查看距离及点坐标。
ID &Verification
Cog2DSymbolTool工具
Cog2DSymbolTool是二维码读取工具,能够定位并读取二维码、QR码,在使用此工具时,需要首先学习二维码或QR码的一些信息,如尺寸大小、错误验证、校正等级、妈的极性等。当音乐程序执行此工具时,Cog2DSymbolTool将进行解码并读到的码以字符串形式输出,读到的码可以传递给其他工具使用,如二维码验证工具等。
Cog2DSymbolVerifyTool工具
Cog2DSymbolVerifyTool是二维码验证工具,若需要对Cog2DSymbolTool读取到的二维码进行打印资料验证,可以将读取结果传递给Cog2DSymbolVerifyTool工具。Cog2DSymbolVerifyTool能够分析码信息、图像的锐角、二维码和背景的对比度等。
CogBarcodeTool工具
CogBarcodeTool是条码读取工具,无需训练既能定位和读取图像中一定区域内的一个或多个条形码,并能用各种参数对读到的条码进行描述。CogBarcodeTool能够读取图像中不同码制的条码,并且对码的方向和位置没有任何要求。CogBarcodeTool工具资产的码的种类有Code39、Code128、UPC/EAN、4-State、POSTNET、PLANET、RSS、Code93、Codabar、Pharmacode、PDF417等,关于这些码的详细含有参考相关资料。
CogOCVMaxTool工具
VisionPro中提供了两个名称很相似的工具,光学字符识别工具CogOCRMaxTool与光学字符验证工具CogOCVMaxTool。不止名称相似,连功能都有点相似。使用CogOCRMaxTool工具可以做字符串验证,CogOCVMaxTool工具也可以
点击调整位置,将生成的字模与文字重合,点击字模可以进行调整,或者修改呈现参数进行调整。
注意:如果你需要识别空格,请输入空格,并在上一步勾选<sp>
CogOCVTool工具
CogOCVTool基于协作视觉算法和模式匹配技术,能够进行高精度的测量和校准,广泛应用于工业自动化和质量控制领域。CogOCVTool的原理可以分为以下几个步骤:
- 图像预处理:在进行测量之前,首先对图像进行预处理。这包括图像的平滑化、滤波和增强等操作,以确保测量结果的准确性和稳定性。
- 特征提取:通过计算机视觉技术,从预处理后的图像中提取出相关的特征。这些特征可以是形状、边缘、纹理等,用于后续的测量和校准。
- 模式匹配:将提取出的特征与已知的模板或标准进行比较,以确定它们之间的相似性和差异。
- 测量和校准:根据模式匹配的结果,计算出目标物体的尺寸、角度等参数,并进行校准和修正,以确保测量结果的准确性和可靠性。
CogPDF417Tool工具
CogPDF417Tool工具用来读取PDF417码,解码成功之后,以字符串的形式将结果输出,并能输出数据区域的长度、宽度、纠错百分率等信息。
Image Processing
CogAffineTransformTool工具
获取一个图像的仿射区域,将InputImage进行切割,得到新的outputImage。用于将需要处理的区域以模板匹配的坐标轴转正。其是在Fixture的输出图片上进行切割。该区域每个点的坐标就是Fixture的坐标,也就是PMAling模板匹配得到的2D变换关系。
CogAffineTransformTool工具能够对图像中仿射矩形内的区域进行变换,产生一个矩形的输出图像。这个工具能够消除仿射矩形的旋转和倾斜的影响,并且使你能够设置一个比例参数,以使能够放大或缩小矩形区域内的特征。
区域形状:指切割下来的区域形状。
选择模式:原点则为左上角,中心则为中心点。
蓝框即为选择要切割的区域,在之后的处理中,切割区域并不是以该区域左上角为原点,而是基于FixtureTool 2D变换标定的坐标。
仿射矩形的概念:仿射矩形是对比相互平行的四边形、正方形、长方形、菱形等都是仿射矩形。可以用仿射矩形的四个顶点来表示仿射矩形,四个定点分别为:
Po: 原点;
Px: X轴方向的顶点;
Py: Y轴方向的顶点;
Popp: 原点的对角顶点;
CogAffineTransformTool工具通过仿射变换,将仿射矩形内的图像区域转换为直角矩形。
采样模式:CogAffineTransformTool工具有两种采样模式可选,一种是双线性插值法,这种方法要用到采样点最近的四个像素。另外一种是高精度法,这种方法和双线性插值法相似,但其用附加像素来确定采样点像素。双线性查找法的执行速度较快,但高精度法的更为精确。
仿射变换对图像的剪裁作用:CogAffineTransformTool工具会对仿射矩形上超出图像边界的区域进行剪裁。这种情况在对图像中的物体进行定位,而仿射矩形跟着定位物体变换的时候会发生。另外,当仿射矩形内在图像中两个或四个像素边界的内的时候也会被剪裁。
创建掩膜图像:通过设置参数,可以让CogAffineTransformTool工具可以创建一个图像掩膜,创建的图像掩膜会将仿射矩形内的像素填充为255,仿射矩形外的像素填充为0。
其中,CogPMAlignTool1工具和CogFixtureTool工具用来定位。CogAffineTransformTool接收定位后图像进行仿射变换。
CogCopyRegionTool工具
这个本来编辑的,但是编辑一半发现发布不上,就截屏啦~
CogHistogramTool工具
CogHistogramTool工具能对整张图像或图像中某一区域的像素分布情况进行统计分析,CogHistogramTool可选择的区域形状。CogHistogramTool工具除了能够生产灰度值直方图外,还能够工具图像的以下信息:
(1) 像素总数;(2) 平均灰度值;(3) 像素中值;(4) 出现概率最大的像素值;(5) 像素的标准差;
利用灰度直方图,可以为图像二值化分割提供阈值参考。
利用灰度直方图,可以为图像二值化分割提供阈值参考,图中,左侧的峰值代表物体的灰度值,右侧的峰值代表背景的灰度值,两峰值的中间像素值可以很好的将物体和背景分割开。
CogImageAverageTool工具
CogImageAverageTool工具可以对同一场景内的多张图片求平均,输出平均后的图像,平均的方式是对多张图像中每一个像素值求平均值,以这个平均值作为这个输出图像的灰度值。通过对多张图像求平均值,可以消除噪声及光线不稳定对图像的影响。
除了求取图像的平均值,CogImageAverageTool工具还可以计算求取多张图像的标准差图像。
下文为示例代码:
using Cognex.VisionPro;
using Cognex.VisionPro.ImageProcessing;
//Image Acq Variables
private int tNum;
private CogFrameGrabbers myFrameGrabbers;
private ICogFrameGrabber myFrameGrabber;
private ICogAcqFifo myAcqFifo;
//Image Average Variables
private CogImageAverage myAvImage;
private CogImage8Grey nextImage;
/*****************相机的初始化操作*******************/
private void InitializeFifo()
{
const string VIDEO_FORMAT="Sony XC75 640x480";
myFrameGrabbers=new CogFrameGrabbers();
myFrameGrabber=myFrameGrabbers[0];
myAcqFifo=myFrameGrabber.GreateAcqFifo(VIDE)_FORMAT,
Cognex.VisionPro.CogAcqFifoPixelFormatConstants.Format8Grey,0,false);
}
/******************定义并实例化CogImageAverageTool工具**********************/
private void InitializeImageAverage()
{
myAvImage=new CogImageAverage();
}
/************为CogImageAverageTool工具添加平均图像***************************/
private void Acquire_Click(object sender,System.EventArgs e)
{
cogDisplay.Image=myAcqFifo.Acquire(out tNum);
cogDisplay1.Fit(true);
nextImage=(CogImage8Grey)cogDisplay1.Image;
myAvImage.Add(nextImage,null);
textBox1.Text=myAvImage.NumImages.ToString();
}
/*****************执行平均操作*************************/
private void ExecuteAverage_Click(object sender,System.EventArgs e)
{
cogDisplay2.Image=myAvImage.ExecuteAverage();
cogDisplay2.Fit(true);
}
/************复位CogImageAverageTool工具****************/
private void Reset_Click(object sender,System.EventArgs e)
{
myAvImage.Reset();
}
CogImageConvertTool工具
CogImageConvertTool工具可以进行图像格式的转换,可以将16位彩色图像转换为8位灰度图。VisionPro中,有些工具是不能处理彩色图像的,必须用CogImageConvertTool工具转换为8位灰度图像才能正常工作。CogImageConvert工具将彩色图像转换为8位灰度图后才能传递给CogPMAlignTool工具进行模型训练,这个不做过多赘述,因为一般彩色图在下面用其他工具时候会显示图像不匹配,这个时候就可以用这个传一下图转换
CogImageSharpnessTool工具
利用CogImageSharpnessTool工具可以测量图像的清晰度,在取像设备的焦距调整时非常有用。此工具每执行一次,就会返回一次代表图像清晰度的分数值,分数越高说明图像越清晰,在保持其他参数不变的情况下,调整焦距,并连续测量图像的清晰度,通过这种方法,你可以很方便的将焦距调整到最佳值。
CogImageSharpnessTool工具提供四种方法来衡量图像的清晰度,分别是:带通、自相关、绝对差异、梯度能量。
带通:图像的灰度模型可以用频率来描述,锐利的边缘具有较高的频率,模糊边缘具有较低的频率。
CogImageSharpnessTool工具通过查找指定频率的边缘来对图像进行分析,可以指定一个频率范围,范围之外的被忽略,清晰度得分根据频率范围内的进行计算。含有噪声的图像一般有较高的频率,通过排除高频段,可以排除噪声对图像清晰度的影响。选择这种方式的时候你需要同时设定频率范围。
自相关:自相关方式通过计算图像的模糊度来反映图像的清晰度,图像的模糊程度通过图像和图像的一部分的偏移的标准自相关系数来确定,自相关系数越高,图像越模糊。
绝对差异:绝对差异方式通过计算像素点的像素值与模糊偏移量的像素点的像素值的差值来衡量图像的清晰度,差值越大图像越清晰。
梯度能量:此方式下,CogImageSharpnessTool工具利用一个3 像素的核来求取图像的能量梯度。能量梯度越大图像越清晰。
CogIPOneImageTool工具
CogIPOneImageTool工具主要用来对单张图像进行算法处理操作,其内部封装许多图像处理算法。
1、加碱常量
此算法为图像中的每一个像素点的像素值加上一个常量,创建一个新的图像,对于彩色图像,需要对每一个图层单独执行加碱操作。
2、3x3卷积运算
利用3X3核对图像执行卷积运算。
3、NxM卷积运算
利用NxM核对图像执行卷积运算,N、M可以任意设置。
4、均衡
对连续获得的图像进行重新映射,以使图像具有相同的灰度值,此算法主要用再光线有轻微变换时候,可以帮助你确保不相干的环境变换不会对系统的整体结果产生影响。
5、扩展
此算法可以通过放大系数对图像或图像一部分进行扩展,可以单独对X轴或Y轴进行扩展。
6、反转/旋转
此算法对图像或图像的一部分进行水平翻转或顺时针方向旋转。
7、高斯采样
对输入图像进行二次采样,使输出的图像只包含源图像的一部分像素,可以起到平滑图像的作用。
8、灰度形态调整
利用3x3核对输入图像进行灰度形态调整,根据特征的尺寸和方向有选择地增强或减弱模型特征。
9、NxM灰度形态调整
利用NxM核对图像进行灰度形态调整。
10、高通过滤
此算法先执行高斯平滑运算,然后用源图像减去高斯平滑后的图像,可以用此算法来增强图像中的重要特征。
11、3x3中值操作
3x3中值操作可以用来消除图像中的噪声,关于3x3中值操作的详细原理请参考相关书籍。此操作步需要设置任何参数,但要注意,此操作会减小图像的尺寸,每执行一次此操作,图像会减小2行2列。
12、丢失像素
将一些未知像素用固定的像素值替代,或根据对周围像素的分析确定一个替代值。
13、乘以常数
图像中的每一个像素点的像素值都乘以一个常数,如果常数值在0和1之间,则相对于除以一个大于1的值。如果是彩色图像,可以单独对每一个图层乘以常数。
14、量化
量化操作可以将具有相同灰度值的特征独立出来,或者是将想要的特征减小为某一个单独的像素值。
15、采样卷积
同时进行采样和卷积操作,可以起到平滑图像的作用。
可以利用此工具中的不同的处理方法(也可以叠加使用),得到较为清晰便于测得的数据,下图就是通过加减常量来获取的
CogIPTwoImageAddTool工具
CogIPTwoImageAddTool接收两输入图像,将两图像中对应的每一个像素点的像素值的和作为输出图像的像素值。CogIPTwoImageAddTool工具的输入输出终端。
其中,CogImageFileTool1、CogImageFileTool2给为CogIPTwoImageAddTool工具提供一张图片,CogIPTwoImageAddTool工具接收两张图像执行图像的加操作。
CogIPTwoImageMinMaxTool工具
CogIPTwoImageMinMaxTool接收两输入图像,利用两图像中对应像素点的较大值或较小值作为输出图像的像素值。CogIPTwoImageMinMaxTool工具的输入输出终端。
其中,CogImageFileTool1、CogImageFileTool2各为CogIPTwoImageMinMaxTool1工具提供一张图片。
CogIPTwoImageSubtractTool工具
CogIPTwoImageSubtractTool接收两输入图像,将两图像中对应的每一个像素点的像素值的和作为输出图像的像素值。简单来讲,就是从另一个图像减去一个图像并生成一个新图像。 具体来说,从InputImageA中减去InputImageB以产生新图像。
其中,CogImageFileTool1、CogImageFileTool2工具各为CogIPTwoImageSubtractTool工具提供一张图片。
CogLinescanDistortionCorrectionTool工具
CogLinescanDistortionCorrectionTool工具可以用来对X轴方向的非线性畸变进行校正,这和利用CogCalibCheckerboardTool工具对线扫描相机进行校正一样,但两者之间有一定的差别,主要表现在如下:
1) CogLinescanDistortionCorrectionTool工具需要在相机前方的固定位置放置一个靶子;
2) CogLinescanDistortionCorrectionTool不会对图像进行校准,不会向左边树种添加坐标系;
3) CogLinescanDistortionCorrectionTool工具不能校正因相机旋转带来的畸变,只能校正非线性的光学和透视失真。
总的来讲,CogCalibCheckerboardTool工具能够提供更精确的校正并且能够对图像进行校准,而CogLinescanDistortionCorrectionTool一般应用在不能放标定板的场合。
其中,CogLinescanDistortionCorrectionTool对标定靶图像进行校正,CogCaliperTool2测量校正后标定靶的边线,CalcMaxPixelDeviation是一个ToolBlock,通过接收终端接收CogCaliperTool1和CogCaliperTool2的边缘查询结果,在脚本对结果进行分析,计算相邻两边的距离的最大值和最小值,并在终端输出。
CogPixelMapTool工具
像素映射
PixelMap 工具编辑控件为CogPixelMapTool提供图形用户界面,用于映射定义输入图像与输出图像之间的pixel value mappings。
慢慢调整两个点的点位,使其图片变得合理。
CogPolarUnwrapTool工具
极性展开工具
极性展开把坐标显示到对应的原图像上的visionpro代码脚本如下,可以直接拿来使用:
极性展开之后,把坐标转换为原来图像的坐标:
// 映射回原始的图(极性转换之前的图)
gc.Clear();
// 获取极性展开工具
CogPolarUnwrapTool polar = mToolBlock.Tools["CogPolarUnwrapTool1"] as CogPolarUnwrapTool;
for (int i = 0; i < myList.Count; i++)
{
// 写半边 ( 可以有参数的提示
// 参数1:输入图像
// 参数2:区域
// 参数3和参数4:线上的坐标(极性展开之后的坐标)
// 参数5和参数6:转换完成的结果(极性转换之前的坐标)
double InputX,InputY;
polar.RunParams.GetInputPointFromOutputPoint(polar.InputImage, polar.Region, line.Results[(int)myList[i]].X, line.Results[(int)myList[i]].Y, out InputX, out InputY);
// 标注
CogPointMarker point = new CogPointMarker();
point.X = InputX;
point.Y = InputY;
point.Color = CogColorConstants.Red;
point.GraphicType = CogPointMarkerGraphicTypeConstants.Crosshair;
point.LineWidthInScreenPixels = 20;
gc.Add(point);
}
CogSobelEdgeTool工具
边缘提取工具
CogSobeEdgeTool是边缘提取工具,一张图像经过CogSobeEdgeTool工具处理后能够得到此图像的边缘幅度图像和边缘角度图像。
边缘幅度图像:基于输入图像中像素的边缘幅度的输出图像。 较大的边缘将在输出图像中生成具有较高亮度值的边缘,而较小的边缘将生成具有较暗的灰度值的边缘。
对于输入图像中没有边缘幅度的像素,Sobel边缘工具会使用随机值填充输出图像。
漏项补充
CogPMAlignMultiTool工具
CogCreateGraphicLabelTool工具
根据输入对象的不同,以及调整各项参数可以在输出图像上生成一个标签项。该工具常在脚本里面使用,用于显示最终结果,可以传入值显示也可以写脚本显示想要所展示的内容结果
CogCalibNPointToNpointTool工具
CogCalibNPointToNPointTool工具两组点来校正图像,一组点为像素坐标点,另一组点是像素坐标点对应的物理坐标点,此工具用这两组点计算一个最佳的2D转换,并将此2D转换保存工具中,在此工具运行的时候将此2D转换添加到输入图像的坐标空间树中,并输出校正后的图像。
CogCalibNPointToNPointTool工具的使用可以分为以下几步:
1)通过CogPMAlignTool工具或CogBlobTool工具获取图像中的坐标点;
2)将像素坐标点和其对应的物理坐标点传递给工具;
3)设置坐标原点。
下图为刚开始打开工具的一个默认界面
1.先新建一个CoaCalibNPointToNPointTool工具,再用VP软件对棋盘格拍照,点击运行按钮把拍照图片传进工具中
2.在棋盘格上标记4个角点位置并传进工具CogCalibNPointToNPointTool里
3.在右边图的下拉选项切换到 Current.Calibrationlmage,在工具里点击“抓取校正图像”按钮然后通过调整未校正X和未校正Y的数值大小或者鼠标去拖动蓝/紫色标记到棋盘格标记的角点位置,再用机械设备来走这几个点开输入对应到原始的已校正X和原始的已校正Y中去,点击计算校正便完成了平面坐标的转换,点击红色十字架运行按钮输出的图片的坐标系便是转换后的机械设备坐标系
CogPMRedLineTool工具
CogPMRedLineTool 也是一个模型定位工具,和其他一些模型定位算法一样,其首先训练一个模型,然后在运行时图像上查询一个或多个已训练的模型,但是CogPMRedLineTool 不是基于像素栅格。它是基于形状的,在模型匹配中更加快速和准确。
CogPMRedLineTool工具与CogPMAlignTool 工具、CogCNLSearchTool 工具 功能类似,只是在匹配算法上有所区别,具体应用场景还需多做实验才能选择更适合的方法
CogCalibImageCorrectorTool工具
CogFindCornerTool工具
CogFindCornerTool工具用来查找角点,在利用CogFindCornerTool工具查找角点的时候,需要预先知道构成角的两条边界想的大概位置,其原理是角边界的大概位置放置卡尺,用卡尺定位构成边界上的点,然后用这些点弥合成两条直线,这两条直线的交点即为所要查询的角点。CogFindCornerTool工具在终端返回角点是否存在、构成角度的两直线的交点坐标等。
CogFindEllipseTool工具
CogFindEllipseTool工具用来查找椭圆,它与CogFindCircleTool、CogFindCornerTool一样,需要预先知道椭圆的大概位置,然后再椭圆的大概位置放在椭圆弧,可以设置椭圆弧的起始角和终止角、中心点坐标、长短轴半径、卡尺数量等参数。卡尺区域在椭圆弧上均匀分布,每一个卡尺上会找到一个椭圆的边界点,CogFindEllipseTool工具根据这些边界点弥合成椭圆,然后将弥合的椭圆以及椭圆的中心点、长短轴半径、选择角度等参数在终端输出。
CogMultiLineFinderTool工具
CogIDTool工具
CogIDTool是VisionPro新增的一个非常重要的解码工具,能够在同一张图像中读取种类不同的一维码、多个同种类的二维码、以及一些高度旋转和有透视变形的码。与Barcode、2DSymbol、PDF417等读码工具相比,CogIDTool具有如下优点:
(1) 同时支持一维码和二维码的读取;
(2) 能够读取同一图像中种类不同的一维码;
(3) 支持最新的解码算法;
1) CogIDTool对一维码的支持
CogIDTool工具能够读取同一图像中的多个种类的1维码,在读取一维码的时候不需要训练。
2) CogIDTool对二维码的支持
CogIDTool工具能够定位和读2D Data Matrix码或QR Code码。CogIDTool工具同样能够读取图像中的多个二维码,但和读取一维码不同的是,这些二维码必须是同一种类。CogIDTool工具读取了图像中的多个QR码。
在使用CogIDTool工具的时候,你可以训练一些参数,例如:二维码的尺寸、二维码的编码种类、二维码的错误纠正方法等,以便能够重复成功读取二维码。如果你的应用中所有的二维码都具有相同的特征,推荐你对码事先进行训练;如果你的应用中,码的参数是变好的,此时你不需要训练参数,以确保CogIDTool在读码的时候能够包含所有的参数值。
3) CogIDTool工具对图像的要求
CogIDTool工具读取一维码对图像有如下要求:
(1) 要读取的码的宽度要大于50个像素,码的每一个模块的宽度要少于50个像素;
(2) 对于一些非线性的码(码模块的宽度不同高度相同),每一个模块的宽度要大于1.6个像素,高度要大于50个像素。对邮政码(码模块的宽度相同高度不同),每一个模块的宽度要大于2.5个像素。
(3) 码的最小值静水带必须存在;
(4) 码模块和背景的对比度要大于32;
(5) 像素高度比不大于1.35:1;
二维码读取时对图像的要求比较低,一般来讲,需要在码四周的模块上周围有等宽度的静水带。
4) CogIDTool工具的解码算法
CogIDTool工具提供两种解码算法:
IDQuick:适用于快速读取一些质量较好的具有较高对比度的码。
IDMax:适用于读取一些图像质量不好的码。
CogIDTool工具默认采用IDMax算法。
5) CogIDTool工具的结果输出
只有被正确解码的一维或二维码才会有结果输出,对于成功读取到的码,会输出以下结构:
(1) 会以弧度的度的方式输出读取到的码的方向;
(2) 会输出码的中心点的X、Y坐标;
(3) 会输出码的四个角点的X、Y坐标;
(4) 会以字符串的形式输出读取到的码;
(5) 国际标准化组织的代码和修饰符;
CogOCRMaxTool工具
OCRMax工具编辑控件为CogOCRMaxTool工具提供了图形用户界面,您可以使用该界面来读取8位灰度图像中的单个字符串。
做法:
第一步:提取线
第二步: 在预期的文本中添加字段
第三步:自动分段
第四步:重新对字段进行手动调整,包括 一个框包涵多个文字 缺失文字未框
第五步:重新自动分段
第六步:添加调整
第七步:点击运行
九点标定
条件:
1.在产品上做个标记点
2.让电气调整机械手到合适的位置 最好抓的2边距离标记位置相对相同
3.吸起产品到合适的高度(实际生产时产品保持的高度)
九点标定:
1.PMA(模板匹配)工具抓到产品上的标记点并中心原点(可以放开角度到-20~25(参考值)后续用来旋转中心标定)
2.添加CogCalibNPointToNPointTool 工具 添加至9列数据用来计算校正
3.第一次记录 目前操作的 PMA的 X、Y的值 和 电气给到的坐标X、Y值,后续8次按照以该点为中心点 走9九宫格
每次偏移值依据视野来判断(依据产品大小来,尽量形成后的九个点在产品上辐射范围大一点)
4.取完9点后抓取校正图像,计算校正(RMS越小越好 )
旋转中心标定:
5.添加CogFitCircleTool工具 输入图为 PMA输出图 机械手可以顺时针 旋转15度以上 3次(不要超出相机视野) 并记录PMA的X、Y值到3行数据内 然后 点击运行 拟合为圆,圆心也就是旋转中心坐标
做完旋转中心可以把该工具删掉毕竟咱只是需要他旋转中心坐标,把坐标记录在tb的高级脚本
不固定方向的机械手会需要个补偿值 (下面是为补偿值准备的值)
参数定义:
//旋转中心
double centerX = -552.076;
double centerY = 697.265;
//图像基准值(CogFindCornerTool(找边工具(2条),可以拿到2线交叉点坐标))
double cambaseX = -355.82;
double cambaseY = 713.875;
取CogFindLineTool工具(旋转角度) 找一条边后的结果的旋转属性 点击deg切换为角度取值
double cambaseR= 0.00223881;
double currentX = cogFindCornerTool.Result.CornerX;
double currentY = cogFindCornerTool.Result.CornerY;
double r =cogFindLineTool1.Results.GetLine().Rotation - cambaseR;
double angle = CogMisc.RadToDeg(r);
//根据旋转中心和当前的值计算旋转之后的值和补偿值
double affterX = (cambaseX - centerX) * Math.Cos(r) - (cambaseY - centerY) * Math.Sin(r) + centerX;
double affterY = (cambaseY - centerY) * Math.Cos(r) + (cambaseX - centerX) * Math.Sin(r) + centerY;
offsetX =double.Parse((currentX-affterX).ToString("0.00"))*100;
offsetY =double.Parse((currentY-affterY).ToString("0.00"))*100;
offsetR = double.Parse(angle.ToString("0.00"))*100;
最后把输出的值通信给PLC
this.mToolBlock.Outputs["Result"].Value = "OK"/"NG";
this.mToolBlock.Outputs["X"].Value = offsetX ;//待补偿的X值
this.mToolBlock.Outputs["Y"].Value = offsetY ;//待补偿的Y值
this.mToolBlock.Outputs["R"].Value = offsetR ;//待补偿的角度
VisionPro命名空间对照表
在此推荐一个代码在线运行的网站(上网查资料时无意发现)
文章说明
此文章是根据学习结果及其网上一些知识点编辑而成,如果有哪些地方写的粗糙或者不够严谨的话,望见谅,也请在评论区指出错误,互相学习,一起进步