HALCON标定技术与精确测量应用

3星 · 超过75%的资源 需积分: 45 20 下载量 94 浏览量 更新于2024-07-24 1 收藏 7.05MB PDF 举报
"HALCON是MVTec Software GmbH公司开发的一款机器视觉软件,它提供了全面的测量技术,适用于各种应用。本资料主要介绍了HALCON的标定功能和如何进行精确测量,由大恒公司的产品总监段德山进行讲解。" 在机器视觉领域,HALCON是一款强大的工具,它具备多种测量功能,包括但不限于标定、轮廓测量、边缘过渡分析、线性、弧形、标准测量、模糊测量、颜色测量、灰度测量、边缘检测、线检测以及阈值处理等。这些功能使得HALCON能够处理1D(线扫描)和2D(矩阵)传感器数据,适用于平坦测量表面的物体,尤其是那些厚度已知的对象。 标定是实现精确测量的关键步骤。相机标定的主要目的是提高测量的准确性,将图像坐标转换为世界坐标,校正镜头畸变,对相机进行定位,并可以对两个或多个相机进行图像对齐。此外,标定还可以确定相机与平面之间的关系,两个平面之间的关系,以及相机与机器人之间的关系。对于非正交视角的图像,标定还能实现图像的校正,将世界坐标转换回图像坐标。 HALCON提供了两种主要的标定模式:面阵传感器标定和线扫描传感器标定。在某些情况下,可能只需要校准相机参数,而无需使用专门的标定板。然而,通常为了获取更准确的结果,会使用标定板来进行更复杂的几何校正。 在实际应用中,HALCON的标定功能可以帮助用户在各种场景下实现高精度的测量,例如在质量控制、自动化生产和检测任务中。通过有效的标定和测量,可以确保系统能够准确地识别和分析目标物体,从而提高生产效率和产品质量。 HALCON的标定与精确测量技术是机器视觉领域的核心组成部分,它为企业提供了解决复杂视觉问题的有力工具,确保了在自动化环境中对物体尺寸、位置和形状的可靠测量。结合大恒公司的专业培训,用户能够更好地掌握HALCON的功能,提升其在实际项目中的应用能力。
2021-06-28 上传
Hi~ 可私信我了解后再进行下载~ 1.基于halcon算法平台; 2.提供深度图源文件以及解压密码; 3.代码预览: */********************************* * @文档名称: 基于点云的平面拟合。 * @作者: hugo * @版本: 1.1 * @日期: 2021-6-16 * @描述: 该方法支持点云平面拟合以及深度图平面拟合。 **********************************/* read_image (imageReal, './replay_38893_2021-6-7.tif') xResolution:=0.06 yResolution:=0.06 zResolution:=0.001 ScaleFactor:=[xResolution,yResolution,zResolution] rateLowRemove:=0.1 rateHighRemove:=0.1 dev_get_window (WindowHandle) *采样区域1 create_drawing_object_rectangle2 (300, 120, rad(90), 30, 20, DrawID) set_drawing_object_params (DrawID, 'color', 'red') set_drawing_object_params (DrawID, 'line_width', 1) attach_drawing_object_to_window (WindowHandle, DrawID) ......... TransPose := [0,0,d,0,0,0,0] rigid_trans_object_model_3d (SampledObjectModel3D1, TransPose, _SampledObjectModel3D1) rigid_trans_object_model_3d (ObjectModelPlane1, TransPose, _ObjectModelPlane1) create_pose (0, 0, Mean/2, 180, 0, 0, 'Rp+T', 'gba', 'point', Pose1) *visualize_object_model_3d (WindowHandle, [_ObjectModelPlane1,_SampledObjectModel3D1,SampledObjectModel3D2], [], [Pose1], [], ['intensity','lut','lut'], ['&litude','sqrt','sqrt'], '', 'Edited by AmazingRobot+ ' , PoseOut) visParamName := ['intensity_1','color_0','color_2','alpha_0'] visParamValue := ['coord_z','red','yellow',0.5] visualize_object_model_3d (WindowHandle, [_SampledObjectModel3D1,SampledObjectModel3D2,_ObjectModelPlane1], [], [], visParamName, visParamValue, 'Edited by AmazingRobot+', [], '', PoseOut) stop () 谢谢您的信任~
2019-08-21 上传
Halcon相机标定代码.hdev 1.初始化 for example: Full image (640*480) Subsampling (320*240) ImageWidth 640 320 ImageHeight 480 240 2.标定板初始化 CaltabName := 'caltab_30mm.descr'//标定板描述文件 set_calib_data_calib_object (CalibDataID, 0, CaltabName) 3.创建数据模型 create_calib_data ('calibration_object', 1, 1, CalibDataID) 4.获取标定图片 相机拍摄不同位姿下图片8-15张,拍摄图片时标定板尽量覆盖整个视场(标定板要根据工作距离、视场大小定制);拍摄图片上的圆直径不得小于10个像素 5.加载所有图像,寻找标定板区域,确定圆心,将结果加载到组元中 for I := 1 to NumImages by 1 ... acquire image ... find_caltab (Image, Caltab, CaltabName, SizeGauss, MarkThresh, MinDiamMarks) find_marks_and_pose (Image, Caltab, CaltabName, StartCamPar, StartThresh, \ DeltaThresh, MinThresh, Alpha, MinContLength, MaxDiamMarks, RCoord, CCoord, StartPose) set_calib_data_observ_points (CalibDataID, 0, 0, I, RCoord, CCoord, 'all', StartPose) endfor 下面将Halcon中提取目标点的大致原理说一下: 首先find_caltab 算子对图像高斯滤波(核大小为SizeGauss),接着阈值分割(与之大小为MarkThresh)将标定板的区域找出来, find_marks_and_pose 算子对区域中的圆进行分割,找到圆的个数,周长,坐标位置等应该和标定板描述文件中的一致,否则会自动调整StartThresh,使得StartThresh按照DeltaThresh步长减小到MinThresh,知道找到准确的圆心。 6.有了所有图像中的圆心就可以标定了 calibrate_cameras (CalibDataID, Errors) 返回平均投影误差Errors