搜档网
当前位置:搜档网 › halcon定位学习基于形状的匹配

halcon定位学习基于形状的匹配

h a l c o n定位学习基于

形状的匹配

IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

1、基于形状的匹配

1>创建ROI?

使用Halcon算子可以方便的设置ROI?

标准形状?

◆draw_rectangle1/2

◆draw_circle

◆draw_ellipse

◆draw_line

任意形状?

◆draw_region

◆draw_polygon

生成标准ROI?

◆gen_rectangle1/2

◆gen_circle

◆gen_ellipse

◆gen_region_line

通过XLD创建AOI?

◆gen_region_contour_xld

◆gen_region_polygon_xld

2>生成ROI

根据创建模板时得到的数据,生成ROI区域,例如

gen_rectangle2(ROI,Row,Column,Phi,Length1,Length2)

3>修正ROI

修正函数?

◆erosion_*减小ROI?

◆dilation_*扩大ROI?

◆shape_trans形状转换?

◆boundary像素级边界?

◆move_region移动区域到新位置?

组合?

◆Intersection交集?

◆Difference差集?

◆Union2并集

4>直接创建模板

create_shape_model(

Template,

参数Optimization

一些模板包含了太多像素点,这导致

◆模板过大?

◆增加执行时间?

◆增加了内存需求?

参数Optimization用来减少这些点?

◆none不减少像素?

◆point_reduction_low大约一半点?

◆point_reduction_medium大约1/3?

◆point_reduction_high大约1/4?

减少点可能导致的问题?

◆可能导致无法创建高层金字塔?

◆有可能会降低结果的精度和准确度原则?

◆边缘较多时才减少?

相同环境下,Optimization取值不同时的运行时间对比?

参数-MinContrast

参数MinContrast是在查找模板的时候,来减少“有害”边缘的。它的值可通过下面方法得到

◆estimate_noise函数?

◆inspect_shape_model函数

5>模板参数-程序获取

determine_shape_model_params(

Template,模板

‘auto’,金字塔层数

0,起始角度

rad(360),角度范围

,缩小范围?

,放大范围

‘auto’,减少像素的方法

‘use_polarity’,极性

‘auto’,对比度

‘auto’,最小对比度

‘all’,Whichvalues

ParameterName,Nameofvalues ParameterValue)Values

6>通过Dxf文件创建模板

通过像素轮廓可以直接创建模板?

◆read_contour_xld_dxf

◆create_shape_model_xld

◆create_scaled_shape_model_xld

◆create_aniso_shape_model_xld

7>边界处理

HALCON提供了两种边界处理方法? set_system(’border_shape_models’,’false‘)◆模板必须在roi内?

◆靠近边缘部分会被裁减?

set_system(’border_shape_models’,’true‘)◆模板可以部分在ROI外面?

◆注意:分值会降低

基于HALCON的模板匹配方法总结

基于HALCON的模板匹配方法总结 分类:halcon学习2013-06-26 16:02 47人阅读评论(0) 收藏举报 halcon形状匹配算法 德国MVTec公司开发的HALCON机器视觉开发软件,提供了许多的功能,在这里我主要学习和研究了其中的形状匹配的算法和流程。HDevelop开发环境中提供的匹配的方法主要有三种,即Component-Based、Gray-Value-Based、Shape-Based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配。这三种匹配的方法各具特点,分别适用于不同的图像特征,但都有创建模板和寻找模板的相同过程。这三种方法里面,我主要就第三种-基于形状的匹配,做了许多的实验,因此也做了基于形状匹配的物体识别,基于形状匹配的视频对象分割和基于形状匹配的视频对象跟踪这些研究,从中取得较好的效果,简化了用其他工具,比如VC++来开发的过程。在VC下往往针对不同的图像格式,就会弄的很头疼,更不用说编写图像特征提取、模板建立和搜寻模板的代码呢,我想其中间过程会很复杂,效果也不一定会显著。下面我就具体地谈谈基于HALCON的形状匹配算法的研究和心得总结。 1. Shape-Based matching的基本流程 HALCON提供的基于形状匹配的算法主要是针对感兴趣的小区域来建立模板,对整个图像建立模板也可以,但这样除非是对象在整个图像中所占比例很大,比如像视频会议中人体上半身这样的图像,我在后面的视频对象跟踪实验中就是针对整个图像的,这往往也是要牺牲匹配速度的,这个后面再讲。基本流程是这样的,如下所示: ⑴首先确定出ROI的矩形区域,这里只需要确定矩形的左上点和右下点的坐标即可,gen_rectangle1()这个函数就会帮助你生成一个矩形,利用area_center()找到这个矩形的中心; ⑵然后需要从图像中获取这个矩形区域的图像,reduce_domain()会得到这个ROI;这之后就可以对这个矩形建立模板,而在建立模板之前,可以先对这个区域进行一些处理,方便以后的建模,比如阈值分割,数学形态学的一些处理等等; ⑶接下来就可以利用create_shape_model()来创建模板了,这个函数有许多参数,其中金字塔的级数由Numlevels指定,值越大则找到物体的时间越少,AngleStart和AngleExtent决定可能的旋转范围,AngleStep指定角度范围搜索的步长;这里需要提醒的是,在任何情况下,模板应适合主内存,搜索时间会缩短。对特别大的模板,用Optimization来减少模板点的数量是很有用的;MinConstrast将模板从图像的噪声中分离出来,如果灰度值的波动范围是10,则MinConstrast应当设为10;Metric参数决定模板识别的条件,如果设为’use_polarity’,则图像中的物体和模板必须有相同的对比度;创建好模板后,这时还需要监视模板,用inspect_shape_model()来完成,它检查参数的适用性,还能帮助找到合适的参数;另外,还需要获得这个模板的轮廓,用于后面的匹配,get_shape_model_contours()则会很容易的帮我们找到模板的轮廓; ⑷创建好模板后,就可以打开另一幅图像,来进行模板匹配了。这个过程也就是在新图像中寻找与模板匹配的图像部分,这部分的工作就由函数find_shape_model()来承担了,它也拥有许多的参数,这些参数都影响着寻找模板的速度和精度。这个的功能就是在一幅图中找出最佳匹配的模板,返回一个模板实例的长、宽和旋转角度。其中参数SubPixel决定是否精确到亚像素级,设为’interpolation’,则会精确到,这个模式不会占用太多时间,若需要更精确,则可设为’least_square’,’lease_square_high’,但这样会增加额外的时间,因此,这需要在时间和精度上作个折中,需要和实际联系起来。比较重要的两个参数是MinSocre和Greediness,前一个用来分析模板的旋转对称和它们之间的相似度,值越大,则越相似,后一个是搜索贪婪度,这个值在很大程度上影响着搜索速度,若为0,则为启发式搜索,很耗时,若为1,则为不安全搜索,但最快。在大多数情况下,在能够匹配的情况下,尽可能的

halcon模板形状匹配参数

NumLevels越大,找到匹配使用的时间就越小。另外必须保证最高层的图像具有足够的信息(至少四个点)。可以通过inspect_shape_model函数查看设置的结果。如果最高层金字塔的消息太少,算法内部会自动减少金字塔层数,如果最底层金字塔的信息太少,函数就会报错。如果设为auto,算法会自动计算金字塔的层数,我们可以通过get_shape_model_params 函数查看金字塔的层数。如果金字塔的层数太大,模板不容易识别出来,这是需要将find_shape_model函数中MinScore和Greediness参数设置的低一些。如果金字塔层数太少找到模板的时间会增加。可以先使用inspect_shape_model函数的输出结果来选择一个较好的金字塔层数。 参数AngleStart、AngleExtent定义了模板可能发生旋转的范围。注意模板在find_shape_model函数中只能找到这个范围内的匹配。参数AngleStep定义了旋转角度范围内的步长。如果在find_shape_model函数中没有指定亚像素精度,这个参数指定的精度是可以实现find_shape_mode函数中的角度的。参数AngleStep的选择是基于目标的大小的,如果模板图像太小不能产生许多不同离散角度的图像,因此对于较小的模板图像AngleStep应该设置的比较大。如果AngleExtent不是AngleStep的整数倍, 将会相应的修改AngleStep。 如果选择complete pregeneration ,不同角度的模板图像将会产生并保存在内存中。用来存储模板的内存与旋转角度的数目和模板图像的的点数是成正比的。因此,如果AngleStep 太小或是AngleExtent太大, 将会出现该模型不再适合(虚拟)内存的情况。在任何情况下,模型是完全适合主存储器的,因为这避免了操作系统的内存分页,使得寻找匹配模板的时间变短。由于find_shape_model函数中的角度可以使用亚像素精度,一个直径小于200像素的模板可以选择AngleStep>= 1. 如果选择AngleStep='auto' (or 0 向后兼容),create_shape_model将会基于模板的大小自动定义一个合适的角度步长. 自动计算出来的AngleStep可以使用get_shape_model_params函数查看。 如果没有选择complete pregeneration, 该模型会在每一层金字塔上建立在一个参考的位置。这样在find_shape_model函数运行时,该模型必须转化为不同的角度和尺度在运行时在。正因为如此,匹配该模型可能需要更多的时间。 对于特别大的模板图像,将参数Optimization设置为不同于'none'的其他数值是非常有用的。如果Optimization= 'none', 所有的模型点将要存储。在其他情况下, 按照Optimization的数值会将模型的点数减少. 如果模型点数变少了,必须在find_shape_model函数中将参数Greediness设为一个比较小的值, 比如:0.7、0.8。对于比较小的模型, 减少模型点数并不能提高搜索速度,因为这种情况下通常显着更多的潜在情况的模型必须进行检查。如果Optimization设置为'auto',create_shape_model自动确定模型的点数。 Optimization的第二个值定义了模型是否进行预处理(pregenerated completely),是通过选择'pregeneration'或者'no_pregeneration'来设置的。如果不使用第二个值(例如:仅仅设置了第一个值), 默认的是系统中的设置,是通过set_system('pregenerate _shape_models',...)来设置的,对于默认值是('pregenerate_shape_models' = 'false'), 模型没有进行预处理. 模型的预处理设置通常会导致比较低的运行时间,因为模型不需要在运行时间时转换。然而在这种情况下,内存的要求和创建模板所需要的时间是比较高的。还应该指出,不能指望这两个模式返回完全相同的结果,因为在运行时变换一定会导致变换模型

HALCON形状匹配讲解

HALCON形状匹配讲解 楼主# 更多 只看楼主倒序阅读发布于:2013-07-21 22:29 保存 该帖是加密帖,需要10金币及以上的积分才能浏览以下内容: 很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间。去年有过一段时间的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配算法的参数优化进行了研究,写了一篇《基于HDevelop的形状匹配算法参数的优化研究》文章,总结了在形状匹配过程中哪些参数影响到模板的搜索和匹配,又如何来协调这些参数来加快匹配过程,提高匹配的精度,这篇paper放到了中国论文在线了,需要可以去下载。 德国MVTec公司开发的HALCON机器视觉开发软件,提供了许多的功能,在这里我主要学习和研究了其中的形状匹配的算法和流程。HDevelop开发环境中提供的匹配的方法主要有三种,即Component-Based、Gray-Value-Based、Shape-Based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配。这三种匹配的方法各具特点,分别适用于不同的图像特征,但都有创建模板和寻找模板的相同过程。这三种方法里面,我主要就第三种-基于形状的匹配,做了许多的实验,因此也做了基于形状匹配的物体识别,基于形状匹配的视频对象分割和基于形状匹配的视频对象跟踪这些研究,从中取得较好的效果,简化了用其他工具,比如VC++来开发的过程。在VC下往往针对不同的图像格式,就会弄的很头疼,更不用说编写图像特征提取、模板建立和搜寻模板的代码呢,我想其中间过程会很复杂,效果也不一定会显著。下面我就具体地谈谈基于HALCON的形状匹配算法的研究和心得总结。 1. Shape-Based matching的基本流程 HALCON提供的基于形状匹配的算法主要是针对感兴趣的小区域来建立模板,对整个图像建立模板也可以,但这样除非是对象在整个图像中所占比例很大,比如像视频会议中人体上半身这样的图像,我在后面的视频对象跟踪实验中就是针对整个图像的,这往往也是要牺牲匹配速度的,这个后面再讲。基本流程是这样的,如下所示: ⑴首先确定出ROI的矩形区域,这里只需要确定矩形的左上点和右下点的坐标即可,gen _rectangle1()这个函数就会帮助你生成一个矩形,利用area_center()找到这个矩形的中心; ⑵然后需要从图像中获取这个矩形区域的图像,reduce_domain()会得到这个ROI;这之后就可以对这个矩形建立模板,而在建立模板之前,可以先对这个区域进行一些处理,方便以后的建模,比如阈值分割,数学形态学的一些处理等等; ⑶接下来就可以利用create_shape_model()来创建模板了,这个函数有许多参数,其中金字塔的级数由Numlevels指定,值越大则找到物体的时间越少,AngleStart和AngleExtent 决定可能的旋转范围,AngleStep指定角度范围搜索的步长;这里需要提醒的是,在任何情

openCV实现halcon的基于形状的匹配

openCV实现halcon的基于形状的匹配OpenCV是一个流行的计算机视觉库,提供了许多功能强大的图像处 理和分析工具。在OpenCV中,可以使用不同的方法实现基于形状的匹配,类似于Halcon库中的功能。 基于形状的匹配是通过比较目标形状和参考形状之间的相似性来寻找 匹配项。在OpenCV中,可以使用轮廓特征和模板匹配等技术来实现形状 匹配。 首先,通过使用OpenCV的图像处理函数,可以对输入图像进行预处理,以提取感兴趣的区域或形状。例如,可以使用二值化、边缘检测或形 态学操作来提取目标形状的轮廓。 接下来,可以使用轮廓特征来比较目标形状和参考形状之间的相似性。通过计算轮廓的形状描述符,如Hu矩、Zernike矩或Fourier描述符, 可以量化形状的特征。 然后,可以使用形状描述符之间的距离度量来比较目标形状和参考形 状之间的相似性。在OpenCV中,可以使用函数如matchShapes(来计算轮 廓的相似性度量。该函数返回一个介于0和1之间的值,值越接近0表示 形状越相似。 另一种常用的基于形状的匹配方法是模板匹配。模板匹配是在输入图 像中寻找与参考形状最相似的图像区域。在OpenCV中,可以使用函数如matchTemplate(来执行模板匹配操作。该函数使用滑动窗口的方式在输入 图像上移动,并计算每个位置与参考形状的相似度得分。 最后,可以根据得分对匹配结果进行排序,并选择与参考形状相似度 最高的匹配项作为最终的识别结果。

需要注意的是,在实现基于形状的匹配时,可能还需要考虑形变、旋转和缩放等因素。为了提高匹配的准确性和鲁棒性,可以尝试使用图像归一化技术,如尺度不变特征变换(SIFT)或速度与环境不变特征(SURF)等。 总之,OpenCV提供了多种方法来实现基于形状的匹配,类似于Halcon库中的功能。通过使用轮廓特征和模板匹配等技术,结合适当的图像处理和分析步骤,可以实现准确的形状匹配并应用于各种计算机视觉应用领域。

Halcon中模板匹配方法的总结归纳

Halcon中模板匹配方法的总结归纳 基于组件的模板匹配: 应用场合:组件匹配是形状匹配的扩展,但不支持大小缩放匹配,一般用于多个对象(工件)定位的场合。 算法步骤: 1.获取组件模型里的初始控件gen_initial_components() 参数: ModelImage [Input] 初始组件的图片 InitialComponents [Output] 初始组件的轮廓区域 ContrastLow [Input] 对比度下限 ContrastHigh [Input] 对比度上限 MinSize [Input] 初始组件的最小尺寸 Mode[Input] 自动分段的类型 GenericName [Input] 可选控制参数的名称 GenericValue [Input] 可选控制参数的值 2.根据图像模型,初始组件,训练图片来训练组件和组件相互关系train_model_components() 3.创建组件模型create_trained_component_model() 4.寻找组件模型find_component_model() 5.释放组件模型clear_component_model() 基于形状的模板匹配: 应用场合:定位对象内部的灰度值可以有变化,但对象轮廓一定要清晰平滑。 1.创建形状模型:create_shape_model() 2.寻找形状模型:find_shpae_model() 3.释放形状模型:clear_shape_model() 基于灰度的模板匹配: 应用场合:定位对象内部的灰度值没有大的变化,没有缺失部分,没有干扰图像和噪声的场合。 1.创建模板:create_template() 2.寻找模板:best_match() 3.释放模板:clear_template() 基于互相关匹配: 应用场合:搜索对象有轻微的变形,大量的纹理,图像模糊等场合,速度快,精度低。

halcon模板匹配之形状匹配法

halcon模板匹配之形状匹配法 Halcon是一种先进的图像处理软件,被广泛应用于计算机视觉领域。在计算机 视觉中,模板匹配是一种常用的方法,用于在一幅图像中寻找一个与给定模板形状相似的目标物体。Halcon支持多种模板匹配方法,其中之一是形状匹配法。 形状匹配法是一种基于特征点的模板匹配方法。它利用目标物体的形状信息进 行匹配,而不是仅仅考虑灰度信息。这种方法适用于目标物体的形状较为明显且不易受到光照等条件的影响。 在使用Halcon进行形状匹配之前,我们需要提前准备好模板图像和待匹配图像。首先,我们需要选择一个与目标物体形状相似的模板图像作为参考。然后,我们将待匹配图像加载到Halcon中,并在图像中提取出一系列的特征点。 Halcon中的形状匹配算法是基于特征点的,它会根据这些特征点的位置和几何 特征来进行匹配。在匹配过程中,Halcon会计算出每一个特征点在模板图像中的 对应位置,并根据这些特征点的几何关系来确定匹配度。 形状匹配算法的核心是特征提取和特征匹配。Halcon提供了多种特征提取函数,如角点检测、边缘检测等。我们可以根据实际情况选择适合的特征提取函数。特征匹配则是根据特征点的位置和几何关系来进行的。Halcon中提供了一系列的匹配 函数,如模板匹配、点对点匹配等。 形状匹配法的优点是对图像的光照变化、噪声等干扰具有较好的鲁棒性,可以 获得较高的匹配准确度。然而,该方法在目标物体形状复杂或存在遮挡时可能会出现匹配失败的情况。因此,在实际应用中,我们需要考虑到目标物体的形状特征以及环境条件,并选择合适的匹配方法。 除了形状匹配法,Halcon还支持其他一些模板匹配方法,如基于灰度的模板匹配、基于形状的模板匹配等。这些方法各有优劣,适用于不同的应用场景。在实际工程中,我们可以根据需求选择最适合的模板匹配方法。

HALCON形状匹配总结

HALCON形状匹配总结 HALCON(High-level Algorithm CONnectivity)形状匹配是一种基 于几何特征的图像处理技术,用于在图像中检测和识别目标形状。它可以 在不考虑大小、旋转和平移的情况下,快速准确地匹配待识别目标的形状。 HALCON形状匹配的原理是将目标形状与样本形状进行比较,通过计 算形状之间的相似度,确定目标形状与样本形状的匹配程度。它的核心思 想是将形状表示为一组关键点,然后将这些关键点与样本形状的关键点进 行比对。关键点是形状中的局部特征,可以通过诸如角点、交点、轮廓曲 率等方式来提取。 1.预处理 预处理是指对输入图像进行一系列的图像处理操作,以便提高形状匹 配的准确性。其中包括图像灰度化、二值化、滤波、边缘检测等操作。这 些操作可以减少图像中的噪声、增强目标的边缘特征。 2.关键点提取 关键点提取是指通过一些特定的算法从目标形状中提取出关键点。这 些关键点通常是形状中的重要特征,如角点、交点、曲率极大值等。关键 点可以用于表示形状的局部特征,方便后续的形状匹配。 3.特征描述 特征描述是指将关键点和它们的局部信息转化为一组表示形状特征的 向量。这些向量可以用于比较形状之间的相似度。常用的特征描述方法包括:形状上的点集、边缘链码、轮廓的矩描述等。 4.匹配

匹配是指将待识别目标形状与样本形状进行比对,确定它们之间的相似度。匹配过程可以通过计算形状特征的相似度值来实现。常见的匹配算法包括:最小二乘、最近邻等。匹配结果可以通过设定一个阈值来判定是否匹配成功。 1.高效快速:HALCON形状匹配算法具有高效快速的特点,可以在短时间内完成目标形状匹配任务。 2.鲁棒性强:HALCON形状匹配算法对图像中的噪声、失真等因素有良好的抗干扰性能,可以准确地匹配目标形状。 3.高度可定制化:HALCON形状匹配算法可以通过调整各个算法模块的参数,实现对匹配结果的控制和优化。 4.应用广泛:HALCON形状匹配算法可以应用于多个领域,如工业自动化、机器人导航等,可以实现对不同形状目标的自动检测和识别。 但是,HALCON形状匹配也存在一些局限性: 1.对光照、遮挡等环境因素敏感:HALCON形状匹配算法对图像中的光照、遮挡等环境因素敏感,可能对匹配结果产生不良影响。因此,对于复杂环境中的形状匹配任务,需要对算法进行一定程度的改进和优化。 2.参数敏感:HALCON形状匹配算法的性能会受到参数设置的影响。不同的形状匹配任务可能需要调整不同的参数,这对用户来说可能需要一定的经验和时间成本。 3.对目标形状变形敏感:HALCON形状匹配算法对目标形状的变形敏感,形状发生变化时,匹配结果可能会产生误差。因此,在实际应用中,需要针对不同的形状变化情况采取相应的处理措施。

halcon形状匹配原理

halcon形状匹配原理 Halcon形状匹配原理 引言 Halcon是一种广泛应用于机器视觉领域的软件工具,它提供了强大的功能,可用于图像处理和分析。其中,形状匹配是Halcon中的一个重要功能,它可以对图像中的目标进行形状匹配和识别。本文将介绍Halcon形状匹配的原理及其应用。 一、形状匹配的基本原理 形状匹配是通过比较目标物体的形状特征来实现目标识别的过程。在Halcon中,形状匹配的基本原理是将目标物体的形状特征抽取出来,然后与预先定义好的模板进行比较,从而找到最佳匹配的结果。 1.1 形状特征提取 在形状匹配过程中,首先需要从目标物体的图像中提取出其形状特征。Halcon提供了多种形状特征提取的方法,如边缘提取、角点提取和轮廓提取等。其中,轮廓提取是最常用的方法之一。通过轮廓提取,可以得到目标物体的边界信息,进而用于后续的形状匹配。1.2 形状特征描述 形状特征提取后,需要对其进行描述,以便进行形状匹配。Halcon 中常用的形状特征描述方法有区域面积、外接矩形、最小外接矩形、最小外接圆等。这些特征可以有效地描述目标物体的形状信息,为

后续的形状匹配提供依据。 1.3 形状匹配算法 形状匹配算法是形状匹配的核心部分。Halcon中采用了灰度不变矩和Hu矩等算法来进行形状匹配。其中,灰度不变矩是一种基于图像灰度信息的形状描述方法,可以有效地抵抗光照变化带来的影响;而Hu矩则是一种基于形状几何信息的描述方法,可以对目标物体的形状进行更准确的匹配。 二、形状匹配的应用 形状匹配广泛应用于机器视觉领域的目标检测、识别和定位等任务中。下面将介绍几个典型的应用场景。 2.1 工业自动化 在工业自动化中,形状匹配可以用于产品质量检测和装配过程中的定位与识别。通过对产品的形状特征进行匹配,可以实现对产品的自动检测和定位,提高生产效率和产品质量。 2.2 医学图像处理 在医学图像处理中,形状匹配可以用于病变区域的定位和识别。通过对医学图像中的病变区域进行形状匹配,可以辅助医生进行疾病的诊断和治疗。 2.3 机器人导航 在机器人导航中,形状匹配可以用于环境地图的构建和定位。通过

halcon常用的匹配算法

halcon常用的匹配算法 摘要: 1.halcon 简介 2.匹配算法的定义与作用 3.halcon 常用的匹配算法及其特点 4.匹配算法的应用场景 5.结语 正文: 【1.halcon 简介】 Halcon 是德国MVTec 公司开发的一款图像处理软件库,它具有强大的处理性能和灵活的编程接口,被广泛应用于工业自动化、机器视觉等领域。在Halcon 中,匹配算法是一种图像处理技术,用于在图像中查找与模板图像相似的区域。匹配算法在物体识别、定位、检测等方面具有重要意义。 【2.匹配算法的定义与作用】 匹配算法是一种图像处理技术,用于在图像中查找与模板图像相似的区域。其主要作用是在物体识别、定位、检测等方面。匹配算法的目的是在图像中找到与模板图像相似的区域,从而实现对物体的定位和识别。 【3.halcon 常用的匹配算法及其特点】 Halcon 中常用的匹配算法包括以下几种: 1.异或运算(XOR):异或运算是一种简单的匹配算法,它将模板图像与搜索图像进行逐位异或运算,得到匹配结果。该算法简单易实现,但对噪声敏感。

2.算术运算(AND、OR):算术运算是将模板图像与搜索图像进行逐像素的加、减、与、或等运算,得到匹配结果。该算法对噪声具有一定抗干扰能力,但计算量较大。 3.汉明距离(Hamming Distance):汉明距离是一种常用的匹配算法,它计算模板图像与搜索图像中对应像素之间的差的绝对值之和。该算法计算简单,但对噪声敏感。 4.归一化相关系数(Normalized Cross Correlation):归一化相关系数是一种常用的匹配算法,它通过计算模板图像与搜索图像的归一化相关系数来评价二者之间的相似度。该算法具有较好的抗噪声性能,但计算量较大。 5.最小二乘法(Least Squares):最小二乘法是一种常用的匹配算法,它通过计算模板图像与搜索图像之间的最小二乘距离来评价二者之间的相似度。该算法具有较好的抗噪声性能,但计算量较大。 【4.匹配算法的应用场景】 匹配算法在工业自动化、机器视觉等领域具有广泛的应用。例如,在零件检测、生产线自动化、无人驾驶等场景中,可以通过匹配算法对物体进行定位、识别和检测,从而实现自动化控制和决策。 【结语】 总之,在Halcon 中,匹配算法是一种重要的图像处理技术,用于在图像中查找与模板图像相似的区域。

halcon定位学习基于形状的匹配

1、基于形状的匹配 1> 创建ROI ⌝使用Halcon 算子可以方便的设置ROI ⌝标准形状 ◆ draw_rectangle1/2 ◆ draw_circle ◆ draw_ellipse ◆ draw_line ⌝任意形状 ◆ draw_region ◆ draw_polygon ⌝生成标准ROI ◆ gen_rectangle1/2 ◆ gen_circle ◆ gen_ellipse ◆ gen_region_line ⌝通过XLD 创建AOI ◆ gen_region_contour_xld ◆ gen_region_polygon_xld 2〉生成ROI 根据创建模板时得到的数据,生成ROI区域,例如gen_rectangle2(ROI,Row,Column,Phi,Length1,Length2) 3> 修正ROI ⌝修正函数 ◆ erosion_*减小ROI ◆ dilation_* 扩大ROI ◆ shape_trans 形状转换

◆ boundary 像素级边界 ◆ move_region 移动区域到新位置 ⌝组合 ◆ Intersection 交集 ◆ Difference 差集 ◆ Union2 并集 4> 直接创建模板 ⌝ create_shape_model( Template , // 模板图像 NumLevels, // 图像金字塔,将图片分辨降低N倍 AngleStart, // 起始角度 AngleExtent, // 角度范围 AngleStep, // 角度步长 Optimization, // 优化算法 Metric, // 极性,设置模板前景与背景、目标前景与背景的关系 Contrast, // 对比度 MinContrast, // 最小对比度 ModelID // 模板ID ) create_scaled_shape_model create_aniso_shape_model 注释: 参数Contrast 不仅仅是对比度,数组元素数量不同,其意义不同 ◆ 1个元素时:128,对比度,直接提取边缘 ◆ 2个元素时:[100, 128],表示使用磁滞分割来提取边缘 ◆ 3个元素时:[100, 128, 10],前两个参数同2,最后一个参数表示所提取边缘的最小长度为10. 参数Optimization 一些模板包含了太多像素点,这导致 ◆模板过大 ◆增加执行时间 ◆增加了内存需求 ⌝参数Optimization 用来减少这些点 ◆ none 不减少像素 ◆ point_reduction_low 大约一半点 ◆ point_reduction_medium 大约1/3 ◆ point_reduction_high 大约1/4

halcon模板匹配之形状匹配法

halcon模板匹配之形状匹配法 (最新版) 目录 一、引言 二、形状匹配法的基本概念 1.基于形状的模板匹配 2.基于轮廓的模板匹配 3.基于灰度的模板匹配 4.基于组件的模板匹配 5.基于互相关匹配 三、基于形状和轮廓的匹配 1.创建 ROI 标准形状 2.模板匹配方法 四、HALCON 模板匹配的实例 1.适用场景 2.对模板的要求 3.相关函数 五、提升匹配成功率的参数 1.适应一定的尺度缩放 2.匹配目标个数、最低分数 六、结论 正文

一、引言 在计算机视觉领域,模板匹配是一种常见的图像处理方法,其主要目的是通过比较参考图像(模板)与当前图像(目标),找到它们之间的相似性。其中,HALCON 是一种广泛应用于工业自动化领域的图像处理软件,提供了丰富的模板匹配方法。本文将介绍 HALCON 模板匹配中的形状匹配法。 二、形状匹配法的基本概念 形状匹配法是基于图像的形状特征进行模板匹配的方法,主要包括以下几种: 1.基于形状的模板匹配:该方法通过对模板和目标对象的形状特征进行比较,找到它们之间的相似性。适用于形状特征明显且不变的场景。 2.基于轮廓的模板匹配:该方法通过对模板和目标对象的轮廓特征进行比较,找到它们之间的相似性。适用于轮廓特征明显且不变的场景。 3.基于灰度的模板匹配:该方法通过对模板和目标对象的灰度特征进行比较,找到它们之间的相似性。适用于灰度特征明显且不变的场景。 4.基于组件的模板匹配:该方法通过对模板和目标对象的组件特征进行比较,找到它们之间的相似性。适用于组件特征明显且不变的场景。 5.基于互相关匹配:该方法通过对模板和目标对象的互相关特征进行比较,找到它们之间的相似性。适用于互相关特征明显且不变的场景。 三、基于形状和轮廓的匹配 在实际应用中,我们可以通过创建 ROI(感兴趣区域)标准形状,来实现基于形状和轮廓的模板匹配。具体步骤如下: 1.创建 ROI 标准形状:在 HALCON 中,可以使用 drawrectangle、drawcircle、drawellipse、drawline 等函数创建 ROI 标准形状。 2.模板匹配方法:在 HALCON 中,可以使用

halcon中的三维匹配原理

halcon中的三维匹配原理 一、简介 三维匹配是计算机视觉领域的一个重要问题,用于从三维场景中提取目标物体的形状、位置和姿态等信息。Halcon是一款广泛应用于工业视觉领域的软件库,其中的三维匹配算法是其中的一个重要组成部分。本文将介绍Halcon中三维匹配的原理和实现方法。 二、三维匹配原理 三维匹配的基本原理是通过比较两个或多个图像之间的对应点,来获取场景中物体的形状、位置和姿态等信息。在三维匹配中,通常使用特征点检测算法来提取图像中的关键点,然后使用匹配算法将这些关键点对齐,以获取场景中物体的三维信息。 1.特征点检测:使用Halcon的FeatureDetector函数来检测图像中的特征点,通常使用SIFT、SURF等算法。这些算法能够检测出图像中的角点、纹理等特征,并提取出关键点的位置和尺寸信息。 2.特征点匹配:使用Halcon的Matcher函数进行特征点匹配,通常使用基于阈值匹配、最近邻匹配等算法。这些算法能够将两个图像中的特征点对齐,以获取场景中物体的三维信息。 3.三维重建:通过匹配到的特征点,可以构建出场景中物体的三维模型。通常使用三角化算法将特征点连接成三角形网格,从而得到物体的三维模型。 三、实现方法 在Halcon中,实现三维匹配需要以下步骤: 1.读取图像:使用ReadImage函数读取待处理的图像。

2.特征点检测:使用FeatureDetector函数检测图像中的特征点,并提取关键点的位置和尺寸信息。 3.特征点匹配:使用Matcher函数进行特征点匹配,将两个图像中的特征点对齐。 4.三维重建:使用三角化算法将匹配到的特征点连接成三角形网格,从而得到物体的三维模型。 5.结果输出:将重建的三维模型输出到文件中,或者进行其他处理。 四、应用场景 三维匹配在许多领域都有应用,如机器人视觉、医学影像处理、3D扫描等。在机器人视觉中,通过三维匹配可以获取物体的姿态、距离等信息,从而实现对物体的控制和导航。在医学影像处理中,通过三维匹配可以获取病变区域的形状、位置等信息,从而辅助医生进行诊断和治疗。在3D扫描中,通过三维匹配可以获取物体的三维模型,用于建模、虚拟现实等领域。 五、总结 本文介绍了Halcon中三维匹配的原理和实现方法,包括特征点检测、特征点匹配和三维重建等步骤。通过使用Halcon中的三维匹配算法,可以方便地获取场景中物体的形状、位置和姿态等信息,应用于机器人视觉、医学影像处理、3D扫描等领域。

halcon形状识别原理

halcon形状识别原理 Halcon形状识别原理 一、引言 形状识别是计算机视觉领域中的一个重要研究方向,它可以通过对图像中的形状进行分析和识别,实现对不同物体的自动识别和分类。Halcon是一种强大的机器视觉软件库,它提供了丰富的形状识别算法和工具,可以帮助开发者快速实现形状识别功能。 二、Halcon形状识别原理 Halcon的形状识别原理基于模板匹配和形状匹配两种方法。 1. 模板匹配 模板匹配是一种常用的形状识别方法,它通过将已知形状的模板与待识别图像进行匹配,从而找到最佳匹配结果。Halcon中的模板匹配算法包括灰度匹配、彩色匹配和形状匹配等。其中,形状匹配是一种基于二值图像的匹配方法,它通过将待识别图像和模板图像进行二值化处理,然后计算它们的形状特征,最后进行形状匹配,找到最佳匹配结果。 2. 形状匹配 形状匹配是Halcon独有的形状识别方法,它是一种基于模板匹配的改进算法,可以更好地解决形状变化、光照变化等问题。形状匹配的原理是将待识别图像和模板图像进行灰度化处理,然后计算它

们的形状特征,包括区域面积、周长、中心距等。接着,通过计算形状特征之间的相似度,找到最佳匹配结果。 三、Halcon形状识别应用 Halcon形状识别广泛应用于工业自动化领域,例如产品质量检测、物体定位和识别等。下面以产品质量检测为例,介绍Halcon形状识别的应用过程。 1. 数据采集 需要采集一组有标记的产品样本图像作为训练数据,包括合格品和不合格品。这些图像可以通过相机进行实时采集,也可以从图像数据库中获取。 2. 数据预处理 对于采集到的图像数据,需要进行预处理,包括去噪、灰度化、二值化等操作。预处理可以提高形状识别的准确性和效率。 3. 模板创建 根据合格品的图像样本,可以创建一个或多个形状模板。模板可以是二值图像,也可以是轮廓点集等形式。模板的创建可以通过手动标记或自动提取等方式实现。 4. 形状匹配 在进行形状匹配之前,需要设置一些匹配参数,如匹配算法、相似

HALCON形状匹配总结

HALCON形状匹配总结D

比例缩放末班匹配是介于一般形状匹配和线性变形匹配之间的一种方法。它可以匹配放大或是缩小的模板,但是仅限于模板大小的缩放,即行列缩放因子一样。这也是它和线性缩放最大的不同。 涉及到的算子如下:create_scale_shape_model和 find_scale_shape_model HALCON形状匹配 LIntExport Herror create_shape_model(const Hobject& Template , //reduce_domain后的模板图像 Hlong NumLevels, //金字塔的层数,可设为“auto”或0—10的整数 Double AngleStart, //模板旋转的起始角度 Double AngleExtent, //模板旋转角度范围, >=0 Double AngleStep, //旋转角度的步长,>=0 and <=pi/16 const char* Optimization, //设置模板优化和模板创建方法 const char* Metric, //匹配方法设置 Hlong Contrast, //设置对比度 Hlong MinContrast , //设置最小对比度

Hlong* ModelID ) //输出模板句柄 进一步分析: NumLevels越大,找到匹配使用的时间就越小。另外必须保证最高层的图像具有足够的信息(至少四个点)。可以通过inspect_shape_model函数查看设置的结果。如果最高层金字塔的消息太少,算法内部会自动减少金字塔层数,如果最底层金字塔的信息太少,函数就会报错。如果设为auto,算法会自动计算金字塔的层数,我们可以通过 get_shape_model_params函数查看金字塔的层数。如果金字塔的层数太大,模板不容易识别出来,这是需要将 find_shape_model函数中MinScore和Greediness参数设置的低一些。如果金字塔层数太少找到模板的时间会增加。可以先使用inspect_shape_model函数的输出结果来选择一个较好的金字塔层数。 参数AngleStart、AngleExtent定义了模板可能发生旋转的范围。注意模板在find_shape_model函数中只能找到这个范围内的匹配。参数AngleStep定义了旋转角度范围内的步长。如果在find_shape_model函数中没有指定亚像素精度,这个参数指定的精度是可以实现find_shape_mode函数中的角度的。参数AngleStep的选择是基于目标的大小的,如果模板图像太小不能产生许多不同离散角度的图像,因此对于较小的模板图像AngleStep应该设置的比较大。如果

HALCON形状匹配总结

HALCON形状匹配总结 Halcon有三种模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配,此外还有变形匹配和三维模型匹配也是分属于前面的大类 本文只对形状匹配做简要说明和补充: Shape_Based匹配方法: 上图介绍的是形状匹配做法的一般流程及模板制作的两种 方法。 先要补充点知识:形状匹配常见的有四种情况一般形状匹配模板shape_model、线性变形匹配模板 planar_deformable_model、局部可变形模板 local_deformable_model、和比例缩放模板Scale_model 第一种是不支持投影变形的模板匹配,但是速度是最高的,第二种和第四种是支持投影变形的匹配,第三种则是支持局部变形的匹配。 一般形状匹配模板是最常用的,模板的形状和大小一经制作完毕便不再改变,在查找模板的过程中,只会改变模板的方向和位置等来匹配目标图像中的图像。这个方法查找速度很快,但是当目标图像中与模板对应的图像存在比例放大缩小

或是投影变形如倾斜等,均会影响查找结果。涉及到的算子通常为create_shape_model 和find_shape_model 线性变形匹配模板planar_deformable_model是指模板在行列方向上可以进行适当的缩放。行列方向上可以分别独立的进行一个适当的缩放变形来匹配。主要参数有行列方向查找缩放比例、图像金字塔、行列方向匹配分数(指可接受的匹配分数,大于这个值就接受,小于它就舍弃)、设置超找的角度、已经超找结果后得到的位置和匹配分数 线性变形匹配又分为两种:带标定的可变形模板匹配和不带标定的可变形模板匹配。涉及到的算子有: 不带标定的模板:创建和查找模板算子 create_planar_uncalib_deformable_model和 find_planar_uncalib_deformable_model 带标定模板的匹配:先读入摄像机内参和外参 read_cam_par 和read_pose 创建和查找模板算子create_planar_calib_deformable_model和 find_planar_calib_deformable_model 局部变形模板是指在一张图上查找模板的时候,可以改变模板的尺寸,来查找图像上具有局部变形的模板。例如包装纸袋上图案查找。参数和线性变形额差不多 算子如下:create_local_deformable_model和 find_local_deformable_model

相关主题