Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在点匹配算法中寻找单一索引来表示相似度_Java_Image Processing_Matching_Similarity - Fatal编程技术网

Java 在点匹配算法中寻找单一索引来表示相似度

Java 在点匹配算法中寻找单一索引来表示相似度,java,image-processing,matching,similarity,Java,Image Processing,Matching,Similarity,我确实读过,并希望实现它,以便进行简单的行匹配。然而,我只有非常基本的数学知识,不能真正理解页面上的方程式 假设我能够从两幅图像中提取点,通过蛮力循环搜索最近的对,并得到一个具有相应距离的对列表 利用上述数据计算单个指数的下一步是什么? 我现在的想法是简单地平均所有的距离。我相信这是更好的方法。或者我应该获取更多数据进行计算?你的直觉几乎是正确的 通常,度量是距离的平方和;目标是找到最小二乘拟合(最小化所有单个平方距离之和)。从本质上讲,这将使标准偏差最小化(实际上它将方差最小化,但最终效果相同

我确实读过,并希望实现它,以便进行简单的行匹配。然而,我只有非常基本的数学知识,不能真正理解页面上的方程式

假设我能够从两幅图像中提取点,通过蛮力循环搜索最近的对,并得到一个具有相应距离的对列表

利用上述数据计算单个指数的下一步是什么?
我现在的想法是简单地平均所有的距离。我相信这是更好的方法。或者我应该获取更多数据进行计算?

你的直觉几乎是正确的

通常,度量是距离的平方和;目标是找到最小二乘拟合(最小化所有单个平方距离之和)。从本质上讲,这将使标准偏差最小化(实际上它将方差最小化,但最终效果相同)

因此,取所有对应的对,计算它们之间的距离平方(快速计算,不涉及sqrt;比计算实际距离快),将它们相加,越小越好。如果点集的计数不同,您可能希望除以计数以获得适当的方差值

这个指标适用于几乎所有的注册算法

顺便说一句,如果你已经有一个点对应,并且你知道没有缩放/倾斜,你可能也会感兴趣,这是一个封闭形式(非迭代)算法,它直接吐出最小二乘拟合。它非常有效


(请注意,对于为什么方差是比平均距离更好的指标的一个非常简单的解释,请查看)。

您的链接指向“鲁棒点匹配”算法。你说的是那个算法吗?这个问题似乎离题了,因为它更适合感谢你的指导杰森:)霍恩的方法对我来说有点复杂,但关于方差的链接简单明了,我希望我会去做。@user3418002霍恩的方法很好,如果你能找到它的实现;我们曾经使用Horn算法+遗传算法的组合,并去除异常值,在没有实际已知点对应关系的情况下,将3D点的嘈杂集合注册到曲面模型中(找到与点集最近的曲面点->Horn算法->变换->去除异常值->随机抖动->冲洗->重复)。效果很好。