halcon 九点标定

2024-01-11 13:40
文章标签 标定 halcon 九点

本文主要是介绍halcon 九点标定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、简介

相机的标定方式:九点标定是最常用的标定方法,比较简单,但是有四种方式,最长用的任然是正拍的,所以其他的暂时不介绍,等到用到之后在说。

二、原理推导

点的仿射变换

* Image Acquisition 01: Code generated by Image Acquisition 01
* Image Acquisition 01: Code generated by Image Acquisition 01
open_framegrabber ('GigEVision', 0, 0, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'default', 'dca5010d1d35_MindVision_GE134GC', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)grab_image_async (Image, AcqHandle, -1)* Image Acquisition 01: Do somethinggrab_image_async (Image, AcqHandle, -1)* Image Acquisition 01: Do something*  由于设备的原因看到标定板的上左右都是反的所以要将这个图像处理一下* 镜像* 由于光照不均的原因所以要平衡光照  增强图像的对比度illuminate (Image, ImageIlluminate, 10, 101, 0.2)equ_histo_image (ImageIlluminate, ImageEquHisto)   //这个和上面的这个算子是一起使用的rgb1_to_gray (ImageEquHisto, GrayImage)threshold (GrayImage, Regions, 0, 79)connection (Regions, ConnectedRegions)select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 21606.9, 49647.9)* 排序shape_trans (SelectedRegions, RegionTrans, 'outer_circle')sort_region (RegionTrans, SortedRegions, 'character', 'true', 'row')area_center (SortedRegions, Area1, Row2, Column2)* sort_region (SelectedRegions, SortedRegions1, 'character', 'true', 'row')
*     area_center (RegionDilation, Area, Row, Column)X:=[92628,122371,151502,92129,122278,152954,92965,124027,153361]Y:=[105584,105584,105584,76518,76518,76518,47016,47016,47016]vector_to_hom_mat2d (Row2, Column2,Y, X, HomMat2D)write_tuple (HomMat2D, 'F:/20201019MasterWang/calib_nine_point.tup') * 开始记录那九个点的坐标 可以是脉冲 也可以 实际的距离* 通过从机械手上和 图形中的测定得到的坐标或者脉冲就可以组成* 方程组,这样就可以从 三个三元一次方程中的到对应的 a  b c* 同理可以在另一个关于Y的方程组中得到 a` b` c`,从而得到了* 对应得 矩阵  这个矩阵就表示从像素平面坐标到 世界平面坐标的* 映射close_framegrabber (AcqHandle)

这篇关于halcon 九点标定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/594551

相关文章

解析apollo纵向控制标定表程序

百度apollo采用标定表描述车辆速度、加速度与油门/刹车之间的关系。该表可使无人车根据当前车速与期望加速度得到合适的油门/刹车开合度。除了文献《Baidu Apollo Auto-Calibration System - An Industry-Level Data-Driven and Learning based Vehicle Longitude Dynamic Calibrating

将DIB/bitmap读入内存并转为 halcon hobject

问题由来:在mfc halcon混合编程中,发现halcon::readimage() 函数读取图片(8位8M/bmp)至少200ms,当然24位 32位bmp 倍数所消耗的时间倍数上涨。那么有没有什么方法加快读取速度?目前发现一个亲测可行的方式:  1、通过 DIBAPI 读取图片,下载可转到点击打开链接,赚点积分 2、获取所读读片的图像数据的首地址,注意非结构头地址 3、通过halcon

Halcon选择一堆region中面积第N大的region的算法实现

以下图为例: 比如我想把面积第2小的那个“小正方形”选择出来,算法代码如下: 1 read_image (Yuan, 'C:/Users/happy xia/Desktop/yuan.png')2 binary_threshold (Yuan, Region, 'max_separability', 'dark', UsedThreshold)3 connection (Regio

Halcon编程-基于形状特征的模板匹配

halcon软件最高效的一个方面在于模板匹配,号称可以快速进行柔性模板匹配,能够非常方便的用于缺陷检测、目标定位。下面以一个简单的例子说明基于形状特征的模板匹配。      为了在右图中,定位图中的三个带旋转箭头的圆圈。注意存在,位置、旋转和尺度变化。 上halcon程序 1 * This example program shows how to find scaled and

Halcon 几何变换之仿射变换

几何变换包括仿射变换、投影变换、图像变换以及极坐标变换。不同的资料可能会有不同的划分。它们具体的数学表达感性趣的可以自己查找。这里只描述Halcon的仿射变换运用。 Halcon中的放射变换常用的两种方式:旋转以及缩放(当然平移也常用,但是不属于仿射变换)。变换涉及到三个量,一个是待变换的图像或者说矩阵,一个变换矩阵,以及变换后的图像或者矩阵。所以在Halcon中会有两种运用方式。第一种:已知待

halcon 仿射变换功能函数,

1.仿射变换有:平移、旋转、缩放、斜切。 2.要进行仿射变换,必须先获取变换矩阵。要获取变换矩阵,必须先获取特征点坐标、角度等信息,几何匹配和bolb是获取特征点的高效方法,除此之外还有其它方法,只要能稳定的求出特征点即可。 3.仿射变换流程    (1.)获取特征点坐标、角度    (2.)计算仿射变换矩阵    (3.)对图像、区域、轮廓进行仿射变换 4.根据特征点、角度计算仿射变

halcon 的图像坐标转到实际的机械坐标的标定

所谓手眼系统,就是人眼睛看到一个东西的时候要让手去抓取,就需要大脑知道眼睛和手的坐标关系。如果把大脑比作B,把眼睛比作A,把手比作C,如果A和B的关系知道,B和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标关系也就知道了。 相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。 在实际控制中,相机检测到目标在图像中的像

C#版Halcon:HalconDotNet最详细最全面教程(万字详细总结)

文章目录 第一部分:Halcon基础1. Halcon简介Halcon的安装和配置 2. Halcon界面和工具图像显示窗口的使用 3. 图像处理基础图像的表示和存储图像的基本操作 4. 图像预处理图像增强技术图像去噪方法图像二值化 第二部分:Halcon进阶5. 形态学操作腐蚀和膨胀开运算和闭运算形态学梯度 6. 特征提取边缘检测角点检测区域特征 第三部分:Halcon高级应用7. 模

学习Halcon深度学习可以分为以下几个步骤

‌基础准备‌:‌了解深度学习基本概念,‌掌握Halcon软件的基本操作。‌ ‌理论学习‌:‌通过官方文档、‌教程和社区资源,‌学习Halcon中深度学习的原理、‌模型架构和训练方法。‌ ‌实践项目‌:‌参与实际项目,‌通过动手实践来加深理解和提升技能。‌可以从简单的图像分类任务开始,‌逐步扩展到目标检测、‌语义分割等复杂任务。‌ ‌持续学习‌:‌关注Halcon的更新和深度学习领域的新进展,‌不断

Halcon基于组件的模板匹配

Halcon基于组件的模板匹配 基于组件的模板匹配可以说是基于形状的模板匹配的加强版,加强的地方在于,这种方法允许模板中包含多个目标,并且允许目标之间存在相对运动(位移和旋转)。这决定了这种方式不适用于尺寸缩放的情况。由于有多个ROI,且需要检测多个ROI之间的相对运动关系,因此这种方法与基于形状的模板匹配相比要稍微复杂一点,且不适用于失焦图像和轻微形变的目标。图中是一个基于组件的模板匹配的例子