halcon视觉引导定位案例
halcon中find_shape_models

halcon中find_shape_models摘要:1.简介2.find_shape_models 函数的作用3.find_shape_models 函数的参数4.find_shape_models 函数的返回值5.find_shape_models 函数的应用案例6.总结正文:Halcon 是一种常用的机器视觉开发软件,它提供了丰富的图像处理和分析功能。
在Halcon 中,find_shape_models 函数是一个非常有用的工具,可以帮助开发者快速地找到图像中的形状模型。
find_shape_models 函数的作用是在一张或多张图像中查找形状模型。
它可以根据预先定义的形状模型模板,对图像中的目标进行识别和定位。
该函数可以应用于各种图像处理任务,如目标检测、识别和跟踪等。
find_shape_models 函数的参数主要包括以下几个方面:1.图像:输入的图像数据,可以是一张或多张图像。
2.形状模型:预先定义的形状模型模板,用于匹配和识别图像中的目标。
3.搜索区域:指定在图像中搜索形状模型的范围。
4.相似性度量:用于衡量图像中目标与形状模型之间的相似性,例如归一化平方差、相关系数等。
5.阈值:用于筛选相似性度量大于阈值的匹配结果。
find_shape_models 函数的返回值是一个形状模型匹配结果列表,其中包含了每个匹配目标的坐标、形状模型ID 等信息。
通过对返回结果的分析,可以得到图像中目标的位置和形状信息。
find_shape_models 函数在实际应用中有很多案例,例如在工业自动化领域,可以用于检测生产线上的缺陷或故障;在医学影像分析中,可以用于定位病灶区域,辅助医生进行诊断;在安防监控系统中,可以用于实时监测和跟踪嫌疑人等。
总结:Halcon 中的find_shape_models 函数是一个非常实用的工具,可以方便地在图像中查找和识别形状模型。
Halcon的应用

HALCON
HALCON实际应用:图像获取
Replace this box with your logo
HALCON实际应用:模板匹配
模板匹配的优势
应用于多数的应用 不需要太多参数调整 不需要分割 健壮
Replace this box with your logo
不需要任何的机器视觉知识
HALCON实际应用:模板匹配
模板匹配
参考图像
搜索图像
Replace this box with your logo
HALCON实际应用:形状模板匹配
* Generate ROI * read image from file or frame grabber inspect_shape_model(Image,ModelImage,ModelRegion,1, Contrast) dev_display(Image) dev_display(ModelRegion)
Replace this box with your logo
HALCON实际应用:图像获取
图像获取主要接口函数 •open_framegrabber, info_framegrabber
Replace this box with your logo
•grab_image, grab_image_async, grab_image_start
Replace this box with your logo
基于相关的模板匹配(conrelationbased)
能克服纹理 背景和聚焦 不清带来的 影响
基于描述符的模板匹配(descriptorbased)
Replace this box with your logo
机器人视觉定位引导案例

机器人视觉定位引导案例
一个常见的机器人视觉定位引导案例是机器人在一个陌生环境中,使用视觉定位技术来导航自己到达目标位置。
这种案例中,机器人可以使用相机和视觉传感器来感知周围环境,并利用图像处理算法来提取关键特征,如地标或标志物。
一种常见的方法是使用SLAM(Simultaneous Localization and Mapping)算法来建立环境地图,并根据这个地图来确定机器
人当前位置。
机器人首先利用相机拍摄周围环境的图像,并使用特征提取算法来检测和跟踪环境中的特征点。
然后,机器人根据检测到的特征点的位置信息,将其与先前建立的地图进行匹配,从而确定自己的位置。
一旦机器人确定了自己的当前位置,它可以使用路径规划算法来计算到达目标位置的最佳路径。
路径规划算法可以考虑机器人的运动能力和环境的障碍物,以确定最佳路径。
一旦机器人确定了最佳路径,它可以使用视觉定位来引导自己沿着路径前进。
机器人可以使用相机和视觉传感器来检测环境中的特征,并根据这些特征的位置信息来调整自己的行动。
例如,如果机器人检测到自己偏离了路径,它可以使用视觉定位来纠正自己的运动,使其回到正确的路径上。
总的来说,机器人视觉定位引导案例利用相机和视觉传感器来感知环境,并使用图像处理和定位算法来确定机器人的位置和计算最佳路径。
这种案例可以在各种不同的场景中应用,如导航机器人、无人驾驶车辆等。
halcon代码案例

halcon代码案例摘要:1.Halcon 简介2.Halcon 代码案例概述3.Halcon 代码案例详解4.Halcon 代码案例应用领域5.总结正文:1.Halcon 简介Halcon 是德国Micro-Electronic Development 公司开发的一款工业自动化控制系统软件,主要用于机器视觉和工业自动化领域。
Halcon 具有丰富的功能库和灵活的编程方式,能够满足各种复杂的工业自动化需求。
2.Halcon 代码案例概述本文将通过一个简单的Halcon 代码案例,介绍如何使用Halcon 进行工业自动化控制系统的开发。
本案例将演示如何使用Halcon 实现一个简单的机器视觉功能,即通过摄像头捕捉到的图像,判断一个产品的合格与否。
3.Halcon 代码案例详解(1)准备工作:首先,需要安装Halcon 软件,并连接摄像头设备。
(2)编写程序:打开Halcon 软件,新建一个项目,编写程序如下:```PROGRAM MainVAR// 声明变量Image : ARRAY [1..1024, 1..1024] OF BYTE;Product : ARRAY [1..4] OF BYTE;合格: BOOL;END_VARMETHOD Run// 初始化Image := (ARRAY [1..1024, 1..1024] OF BYTE)();Product := (ARRAY [1..4] OF BYTE)();合格:= FALSE;// 读取摄像头图像READ_IMAGE (Image, "摄像头设备地址")// 对图像进行预处理FOR i := 1 TO 1024 DOFOR j := 1 TO 1024 DOImage[i, j] := Image[i, j] > 128END_FOREND_FOR// 提取产品区域FOR i := 1 TO 4 DOFOR j := 1 TO 4 DOProduct[i, j] := Image[i * 256 + j, i * 256 + j]END_FOREND_FOR// 判断产品合格与否IF Product[1, 1] AND Product[1, 2] AND Product[2, 1] AND Product[2, 2] THEN合格:= TRUEEND_IF// 输出结果IF 合格THENWRITE "合格"ELSEWRITE "不合格"END_IF// 延时SLEEP 100END_METHODEND_PROGRAM```(3)编译运行:编译程序,并在摄像头设备上运行。
halcon单目视觉模板匹配例子

在进行高质量、深度和广度兼具的文章撰写之前,我首先需要对您提出的主题进行全面评估和研究。
在本文中,我将按照您的要求,从简到繁地探讨“halcon单目视觉模板匹配例子”这一主题,以便您能更深入地理解。
在文章中,我会反复提及这一主题,并在总结回顾部分共享我的个人观点和理解。
请您耐心等待我的文章完成。
在深度了解halcon单目视觉模板匹配例子之前,我们需要先了解一些基础知识。
Halcon是一种先进的机器视觉库,它具有强大的图像处理和分析能力,可以应用于工业自动化、质量控制、医学影像等领域。
而单目视觉模板匹配则是Halcon中的重要功能之一,它能够在图像中找到指定模板的位置,从而实现对象识别和定位的功能。
通过模板匹配,我们可以实现自动化生产线上的零件检测、物体定位和跟踪等任务。
接下来,让我们以最简单的例子开始,来了解单目视觉模板匹配的基本原理。
假设我们有一张包含特定物体的模板图像,我们希望在另一张大图像中找到并定位该物体的位置。
这时,我们可以利用Halcon提供的模板匹配功能来实现这一目标。
我们需要在模板图像中提取出物体的特征,然后将其用于在大图像中进行匹配。
Halcon的模板匹配功能可以帮助我们快速准确地找到并定位物体的位置,实现自动化检测和定位的需求。
然而,现实中的应用场景往往更加复杂和多样化。
在工业生产线上,我们可能需要处理物体旋转、缩放、遮挡等情况。
这就需要我们对单目视觉模板匹配功能有更深入的理解和应用。
Halcon提供了丰富的参数和算法,可以帮助我们应对各种复杂情况。
通过设置旋转不变性参数,我们可以在一定范围内实现对旋转变换的兼容;通过使用多尺度匹配算法,我们可以处理物体尺度的变化;通过使用区域过滤器,我们可以处理部分遮挡的情况。
这些高级功能使得Halcon在工业自动化领域具有广泛的应用前景。
对于个人的理解和观点,我认为单目视觉模板匹配是机器视觉领域中一项非常重要的技术。
它可以帮助我们实现自动化生产和质量控制,提高生产效率和产品质量。
halcon四个顶点坐标排序

halcon四个顶点坐标排序摘要:1.引言2.Halcon四个顶点坐标排序的背景和意义3.Halcon四个顶点坐标排序的方法和步骤4.实例演示5.总结正文:Halcon是一种常用的机器视觉开发软件,它提供了丰富的图像处理和分析功能。
在实际应用中,我们常常需要对图像中的四个顶点坐标进行排序,以满足特定算法或功能的需求。
本篇文章将详细介绍Halcon四个顶点坐标排序的方法和步骤。
首先,我们需要了解Halcon四个顶点坐标排序的背景和意义。
在机器视觉领域,对四个顶点坐标进行排序可以帮助我们更好地处理和分析图像,例如在目标检测、识别和跟踪等任务中,需要根据四个顶点坐标对目标进行定位和描述。
此外,排序后的四个顶点坐标可以简化图像处理算法,提高算法的执行效率。
接下来,我们将介绍Halcon四个顶点坐标排序的方法和步骤。
整个过程可以分为以下几个部分:1.读取图像并进行预处理:使用Halcon的ReadImage函数读取图像,然后通过一系列图像处理操作对图像进行预处理,例如平滑、阈值处理等,以便更好地提取四个顶点坐标。
2.提取四个顶点坐标:使用Halcon的FindCorners函数提取图像中的四个顶点坐标。
这个函数可以根据用户设定的参数,如极值、阈值等,找到图像中满足条件的角点。
3.排序四个顶点坐标:使用Halcon的Sort function对提取到的四个顶点坐标进行排序。
排序可以根据用户设定的规则进行,例如按照横坐标或纵坐标进行升序或降序排列。
4.实例演示:为了更好地理解上述方法,我们提供一个实例演示。
假设我们有一张如下所示的图像:```1 1 11 1 11 1 11 1 1```假设我们使用以下代码对图像进行处理:```halconread_image (Image, "path/to/image")threshold (Image, Region, 128, 255)find_corners (Region, Corners)sort_function (Corners, "y", "asc")```执行以上代码后,我们可以得到按照纵坐标升序排列的四个顶点坐标。
halcon——缺陷检测常用方法总结(模板匹配(定位)+差分)
halcon——缺陷检测常⽤⽅法总结(模板匹配(定位)+差分)引⾔机器视觉中缺陷检测分为⼀下⼏种:blob分析+特征模板匹配(定位)+差分光度⽴体:特征训练测量拟合频域+空间域结合:深度学习本篇主要总结⼀下缺陷检测中的定位+差分的⽅法。
即⽤形状匹配,局部变形匹配去定位然后⽤差异模型去检测缺陷。
模板匹配(定位)+差分整体思路(形状匹配):1. 先定位模板区域后,求得模板区域的坐标,创建物品的形状模板create_shape_model,注意把模板的旋转⾓度改为rad(0)和rad(360)。
2. 匹配模板find_shape_model时,由于物品的缺陷使形状有局部的改变,所以要把MinScore设置⼩⼀点,否则匹配不到模板。
并求得匹配项的坐标。
3. 关键的⼀步,将模板区域仿射变换到匹配成功的区域。
由于差集运算是在相同的区域内作⽤的,所以必须把模板区域转换到匹配项的区域。
4. 之后求差集,根据差集部分的⾯积判断该物品是否有缺陷。
模板匹配(定位)+差分的⽅法主要⽤来检测物品损坏,凸起,破洞,缺失,以及质量检测等。
halcon例程分析:1,印刷质量缺陷检测(print_check.hdev)该例程⽤到了差异模型,将⼀个或多个图像同⼀个理想图像做对⽐,去找到明显的不同。
进⽽鉴定出有缺陷的物体。
差异模型的优势是可以直接通过它们的灰度值做⽐较,并且通过差异图像,⽐较可以被空间地加权。
变化模型检测缺陷的整体思路:1. create_variation_model —— 创建⼀个差异模型2. get_variation_model —— 获得差异模型3. train_variation_model —— 训练差异模型4. prepare_variation_model —— 准备差异模型5. compare_variation_model —— ⽐较模型与实例6. clear_variation_model —— 清除差异模型dev_update_off ()* 选择第1张图像创建形状模板read_image (Image, 'pen/pen-01')get_image_size (Image, Width, Height)dev_close_window ()dev_open_window (0, 0, Width, Height, 'black', WindowHandle)set_display_font (WindowHandle, 16, 'mono', 'true', 'false')dev_set_color ('red')dev_display (Image)* 把我感兴趣的区域抠出来,原则上范围越⼩越好,因为这样创建模板时⼲扰会少很多threshold (Image, Region, 100, 255)fill_up (Region, RegionFillUp)difference (RegionFillUp, Region, RegionDifference)shape_trans (RegionDifference, RegionTrans, 'convex')dilation_circle (RegionTrans, RegionDilation, 8.5)reduce_domain (Image, RegionDilation, ImageReduced)inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 1, 20)gen_contours_skeleton_xld (ModelRegions, Model, 1, 'filter')* 获得抠图区域的中⼼,这是参考点area_center (RegionDilation, Area, RowRef, ColumnRef)* 创建形状模板create_shape_model (ImageReduced, 5, rad(-10), rad(20), 'auto', 'none', 'use_polarity', 20, 10, ShapeModelID)* 创建变化模型(⽤于和缺陷⽐较)create_variation_model (Width, Height, 'byte', 'standard', VariationModelID)* ⽂件夹中前15张图⽚是质量良好的,可以⽤来训练模板for I := 1 to 15 by 1read_image (Image, 'pen/pen-' + I$'02d')* 先寻找模板的实例find_shape_model (Image, ShapeModelID, rad(-10), rad(20), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)if (|Score| == 1)if (|Score| == 1)* 使⽤仿射变换,将当前图像平移旋转到与模板图像重合,注意是当前图像转向模板图像vector_angle_to_rigid (Row, Column, Angle, RowRef, ColumnRef, 0, HomMat2D)affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', 'false')* 训练差异模型train_variation_model (ImageTrans, VariationModelID)dev_display (ImageTrans)dev_display (Model)endifendfor* 获得差异模型get_variation_model (MeanImage, VarImage, VariationModelID)* 做检测之前可以先⽤下⾯这个算⼦对可变模型进⾏设参,这是⼀个经验值,需要调试者调整prepare_variation_model (VariationModelID, 20, 3)dev_set_draw ('margin')NumImages := 30* 可变模板训练完成后,我们终于可以进⼊主题,马上对所有图像进⾏缺陷检测,思想就是差分for I := 1 to 30 by 1read_image (Image, 'pen/pen-' + I$'02d')* 要注意做差分的两幅图像分辨率相同,当然也需要通过仿射变换把待检测的图像转到与模板图像重合* 先寻找模板的实例find_shape_model (Image, ShapeModelID, rad(-10), rad(20), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score) if (|Score| == 1)* 使⽤仿射变换,将当前图像平移旋转到与模板图像重合,注意是当前图像转向模板图像vector_angle_to_rigid (Row, Column, Angle, RowRef, ColumnRef, 0, HomMat2D)affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', 'false')* 抠图reduce_domain (ImageTrans, RegionDilation, ImageReduced)* 差分(就是检查两幅图像相减,剩下的区域就是不同的地⽅了,与模板图像不同的地⽅就是缺陷)*这⾥可不能⽤difference做差分啊,halcon为变形模板提供了专门的差分算⼦:compare_variation_modelcompare_variation_model (ImageReduced, RegionDiff, VariationModelID)connection (RegionDiff, ConnectedRegions)* 特征选择:⽤⼀些特征来判断这幅图像印刷是否有缺陷,这⾥使⽤⾯积* 其实可以考虑利⽤区域⾯积的⼤⼩来判断缺陷的严重程度,这⾥就不过多讨论了select_shape (ConnectedRegions, RegionsError, 'area', 'and', 20, 1000000)count_obj (RegionsError, NumError)dev_clear_window ()dev_display (ImageTrans)dev_set_color ('red')dev_display (RegionsError)set_tposition (WindowHandle, 20, 20)if (NumError == 0)dev_set_color ('green')write_string (WindowHandle, 'Clip OK')elsedev_set_color ('red')write_string (WindowHandle, 'Clip not OK')endifendifif (I < NumImages)disp_continue_message (WindowHandle, 'black', 'true')stop ()endifendfor* 结语:如果发现前⾯作为训练变形模板的良好图像也被判定为NG,* 可以调整prepare_variation_model参数* 或者调整select_shape特征筛选的标准相关算⼦分析:create_variation_model(创建⼀个差异模型)create_variation_model(Width, Height, Type, Mode ,ModelID)//创建⼀个ID为ModelID,宽为Width,⾼为Height,类型为Type的差异模型参数参数Mode决定了创建标准图像和相应的变化图像的⽅法。
5-HALCON_各种定位方法
模板参数-Optimization
相同环境下,Optimization取值不同时的运行时 间对比
◆ ◆ ◆ ◆ none point_reduction_low point_reduction_medium point_reduction_high 14.53 12.53 11.39 10.67 ms ms ms ms
◆ set_system('pregenerate_shape_models','true'/'false')
如果没有设置,默认为
◆ set_system('pregenerate_shape_models','false')
模板参数-Optimization
相同环境下,Optimization第二个参数取值不同时的运行时间对比
对比图太低
合适的对比度
对比度太高
模板参数-Contrast
参数Contrast不仅仅是对比度,根据数组元素数量不 同,其意义不同
◆ 1个元素时:128,对比度,直接提取边缘 ◆ 2个元素时:[100, 128],表示使用磁滞分割来提取边缘 ◆ 3个元素时:[100, 128, 10],前两个参数同2,最后一个参数表 示所提取边缘的最小长度为10.
multiple_scales.dev
print_check.dev
96ms
113ms
13s
1.1s
40ms
13ms
44ms
13ms
因此,建议当内存较大,就选预创建的方式,如 果CPU速度快,就可以选另外方式。
模板参数-Metric
照明与成像
背景白色
Halcon-双目视觉系统标定
Halcon-双目视觉系统标定1.get_image_pointer1(Image: : : Pointer, Type, Width, Height)返回第一通道的点,图像数据类型,图像尺寸。
2.disp_image(Image : : WindowHandle : )在输出窗口显示灰度图像3.visualize_results_of_find_marks_and_pose (ImageL, WindowHandle1, RCoordL, CCoordL, StartPoseL, StartCamParL)内部函数,显示初步标定的坐标系和MARKS中心,MARKS中线用十字线标出。
4.set_calib_data_observ_points( : : CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, Row, Column, Index, Pose : ) 储存以点为基础的标定观测值,将观测值储存与标定数据句柄中。
5.calibrate_cameras( : : CalibDataID : Error)根据标定数据模型中的值标定摄像机。
6.get_calib_data( : : CalibDataID, ItemType, ItemIdx, DataName : DataValue)查询储存或计算得到的标定模型中的数据。
7.write_cam_par( : : CameraParam, CamParFile : )把相机内参数写入TXT文件8.write_pose( : : Pose, PoseFile : )把相机的位姿写入TXT文件9.gen_binocular_rectification_map( : Map1, Map2: CamParam1, CamParam2, RelPose, SubSampling, Method, MapType: CamParamRect1, CamParamRect2, CamPoseRect1, CamPoseRect2, RelPoseRect)把相机参数和姿态作为输入,输出为校正图像和矫正后的参数和姿态。
HALCON编程及工程应用第11章 HALCON标定方法图文模板
成像平面上的投影点(点q)的变化过程
上图是将相机平面移至针孔与目标物体之间后的模型示意 图,描述的是在这个移动过程中,成像平面上的投影点(点q) 的变化情况。
根据空间一点成像到图像平面上的路线,先由世界坐标系变 换到相机坐标系,然后又由相机坐标系变换到成像坐标系,但 是这个过程有畸变,需要进行变换处理,再由成像平面坐标系 HA变LC换ON到编图程像基像础素与坐工标程系应,用中间大致分为以下几个步骤:
的相机成像模型。在相机的 成像模型中,包含有几个坐 标系:世界坐标系、相机坐 标系、图像坐标系。相机成 像过程的数学模型就是目标 点在这几个坐标系中的转化 过程。
HALCON编程基础与工程应用
三种坐标系定义
在计算机视觉中常采用右手定则来定义上图中的坐标系。图中
存在三个不同层次坐标系,以下是对这三种坐标系的定义。 1.世界坐标系(Xw,Yw,Zw) 就是现实坐标系,或全局坐标系,它是客观世界的绝对坐标, 由用户任意定义的三维空间坐标系,一般的3D场景用的就是这 种坐标(HALCON标定中以标定板为参考坐标系基准)。 2.相机坐标系(Xc,Yc) 以小孔相机模型针孔平面上的聚焦中心为原点,以相机光轴为 Zc构成三维坐标系,其中Xc、Yc与成像平面坐标系平行。 3.图像坐标系:分为成像平面坐标系和图像像素坐标系。 成像平面坐标系(x,y):其原点为透镜光轴与成像平面交点, X、Y轴分别平行于相机坐标系Xc轴和Yc轴,是平面直角坐标系, 单位mm。 图像像素坐标系(u,v):固定在图像上的以像素为单位的平 面直角坐标系,其原点位于图像左上角,其横纵两轴(对于数 HA字LCO图N编像程,基是础行与和工列程)应分用别平行于成像平面坐标系的横、纵坐标
图像像素坐标系的转化关系
HALCON编程基础与工程应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
halcon视觉引导定位案例
Halcon视觉引导定位是一种基于Halcon软件的图像处理技术,通过对图像进行分析和处理,实现对目标物体的定位和识别。
下面列举了10个关于Halcon视觉引导定位案例的描述。
1. 产品组装定位:在电子产品的组装过程中,使用Halcon视觉引导定位技术可以准确地识别和定位各个组件,确保组装的准确性和质量。
2. 精准测量定位:在工业生产中,需要对产品进行精准的测量和定位,使用Halcon视觉引导定位可以实现高精度的测量和定位,提高生产效率和产品质量。
3. 零件检测定位:在汽车零件生产过程中,使用Halcon视觉引导定位可以对零件进行检测和定位,确保零件的质量和尺寸符合要求。
4. 包装盒识别定位:在食品和药品包装过程中,使用Halcon视觉引导定位可以对包装盒进行识别和定位,确保包装的准确性和一致性。
5. 文字识别定位:在印刷和出版行业中,使用Halcon视觉引导定位可以对文字进行识别和定位,实现自动化的文字处理和排版。
6. 质检定位:在制造业中,使用Halcon视觉引导定位可以对产品进行质量检测和定位,确保产品的质量符合要求。
7. 钣金定位:在汽车制造和航空航天行业中,使用Halcon视觉引导定位可以对钣金件进行定位和检测,确保钣金件的尺寸和形状符合要求。
8. PCB板定位:在电子行业中,使用Halcon视觉引导定位可以对PCB板进行定位和检测,确保PCB板的质量和尺寸符合要求。
9. 零件装配定位:在机械制造业中,使用Halcon视觉引导定位可以对零件进行装配和定位,提高装配的准确性和效率。
10. 包装机器人定位:在自动化包装行业中,使用Halcon视觉引导定位可以对包装机器人进行定位和控制,实现自动化的包装过程。
以上是关于Halcon视觉引导定位的10个案例描述。
通过使用Halcon软件的图像处理技术,可以实现对不同行业的目标物体进行精准的定位和识别,提高生产效率和产品质量。