说明:本次内容基于九眼标定算法的理论进行算法设计,并通过halcon和C#联合编程的办法进行APP端的设计
一、主要内容
-
九眼标定算法理论说明
-
halcon代码说明
-
C#代码说明
二、九眼标定算法理论说明
本次算法通过视觉识别的9个特征点位置和机器人在空间中得到的对应的9个点的位置,通过最小二乘法得到齐次变换矩阵,再将齐次变换矩阵左乘对应的像素坐标点,这样即可得到在机器人坐标系下的像素点
以最小二乘法在二维图像配准的情况下说明(网上有很多关于最小二乘法的理论详解,本次内容主要是介绍代码端的实现):
1.图像配准简介:
图像配准是指将两幅或多幅图像对齐的过程,使它们具有相同的几何形状、大小和位置。图像配准是图像处理和计算机视觉领域中的一个重要问题,它在很多应用中都有重要的作用,如医学影像分析、遥感图像分析、计算机辅助设计等。
图像配准可以通过两种方法实现:基于特征的配准和基于区域的配准。
基于特征的配准是通过识别两幅图像中的关键特征点(如角点、边缘、斑点等),然后将这些特征点匹配起来,从而确定两幅图像的变换关系,进而实现图像的配准。常见的基于特征的配准算法包括SIFT、SURF、ORB等。
基于区域的配准是通过匹配两幅图像中的像素区域来实现图像的配准。这种方法通常需要定义一种相似性度量来评估两幅图像之间的相似度,然后通过优化这个相似性度量来确定图像的变换关系。基于区域的配准算法包括互信息(MI)、归一化互相关(NCC)等。
无论是基于特征的配准还是基于区域的配准,都有其适用的场合和限制,需要根据具体情况选择合适的算法来实现图像配准。
2.最小二乘法的一般情况(矩阵表达)
假设有模型变量,则可用线性函数表示如下:
对n个样本来说,可以用如下线性方程组来表示:
将式(2)转化为矩阵形式,如下:
则(3)式可以表达为:
则根据最小二乘法计算参数,有如下公式
则该参数的最优解为:
3.最小二乘法在图像配准中的应用
简要流程
-
选择特征点:从基准图像和待配准图像中选择一些具有代表性的特征点。
-
特征点匹配:对选择的特征点进行匹配,建立两幅图像之间的对应关系。
-
计算变换矩阵:根据对应关系,利用最小二乘法求解一个变换矩阵,将待配准图像映射到基准图像坐标系中。
-
图像配准:将待配准图像按照变换矩阵映射到基准图像坐标系中,完成图像配准。
算法说明
我们记待配准图像中像素特征点为(),变换后基准图像像素点坐标为(
),则根据坐标变换的原理,有如下公式:
我们假设识别特征点数为3个,根据(6)式子我们可以得到如下式子:
我们记伪逆函数为Pinv(Matrix m)并根据式(5)(6)可以得到如下式子:
根据(8)式得到参数矩阵
最后我们将待配准图像中所有像素点乘以该参数矩阵,就可以完成图像配准
二、halcon代码
啥也不说了,直接上代码(简洁好用)!!!
dev_clear_window()
dev_open_window (0, 0, 512, 512, 'black', WindowH