【问题标题】:Finding correspondence of edges for image matching为图像匹配寻找边缘的对应关系
【发布时间】:2017-11-15 14:05:45
【问题描述】:

我有一个具有挑战性的问题要解决。 Figure 显示绿线,从图像派生,红线是从另一个图像派生的边缘。两幅图像都是从同一个相机拍摄的,所以内在参数是相同的。只是外部参数不同,即在拍摄第二张图像时有轻微的旋转和平移。从图中可以看出,两组线非常接近。我的任务是找到从第一张图像派生的边缘和从第二张图像派生的边缘之间的对应关系。

我已经通过一些来源,提到通过计算图像 1 的边缘的端点到图像 2 的边缘之间的欧几里得距离来获取对应的最近线段。但是,这种方法不适用于我的情况,因为图像1中存在边缘,靠近图像2中的其他边缘不对应,这将导致大量不匹配。

经过更多研究,很少有更多来源提到豪斯多夫距离。我相信这真的可以解决我的问题和论文

“Rucklidge, William J.”使用 Hausdorff 距离。”国际计算机视觉杂志 24.3 (1997 年):251-270。”

看起来真的很有趣。

如果,我得到它是正确的,论文制定了一个计算模型边缘到图像边缘转换的函数。但是,在 MATLAB 中实现时,我完全迷失了,从哪里开始。如果可以将我定向到相同算法的伪代码或相同算法的 MATLAB 实现,我将非常感激。

另外,我知道

“将 Hausdorff 距离应用于平铺图像分类”link

“豪斯多夫回归”

但是,我仍然不确定如何最小化 Hausdorff 距离。

注意1:现在不关心计算成本,但首选更快的算法

注意2:只要有可用的伪代码或开放的实现,我愿意接受其他算法和方法来解决这个问题。

【问题讨论】:

    标签: algorithm matlab image-processing optimization computer-vision


    【解决方案1】:

    您考虑过 MATLAB 的图像配准工具吗?

    使用 imregister(https://www.mathworks.com/help/images/ref/imregister.html),您可以插入两个图像,1 个作为参考,一个作为“移动”,它会使用仿射变换将它们注册在一起。函数调用只是

    [optimizer, metric] = imregconfig('monomodal');
    output_registered = imregister(moving,fixed,'affine',optimizer,metric);
    

    为了获得更好的可视化效果,请使用 RegistrationEstimator 命令打开一个 gui,您可以在其中导入 2 个图像并使用它来注册您的图像。您可以从那里导出代码以供将来的图像使用。

    此外,如果您想考虑非刚性变换,还有 imregdemons(https://www.mathworks.com/help/images/ref/imregdemons.html),其工作方式大致相同。

    【讨论】:

    • 非常感谢您的回复。对于我的工作,我需要匹配从图像中提取的边缘,直接匹配图像不是我的选择。仍然按照您的建议,我尝试在边缘图像上使用 Matlab 图像配准工具箱。不幸的是,结果不正确。后来我使用了 imregdemons 函数。输出图像与输入图像相同,除了线条有些失真。但是,精确对应仍然需要平移和旋转。但是非常感谢您的努力和时间。
    • 注册必须是自动的吗?如果没有,您最好手动选择点对并从中计算变换。
    • 是的,通过手动选择点对可以实现,如果我没记错的话,图像周围的 4-5 个点对就足够了。但是,我必须对至少 1000 张图像执行此操作,因此我必须找到一种自动执行此操作的方法。
    • @Debaditya 这是我注册时使用的当前方法github.com/raacampbell/matlab_elastix 否则,有一种叫做相干点漂移的东西。请注意,我个人从未使用过这种方法,但它似乎比我使用的方法更适用于边缘github.com/markeroon/CoherentPointDrift 如果您是新手,需要注意的是,需要进行很多调整图像注册工作正常,您可能需要修改设置。
    • @Debaditya 最后,图像配准是一个非常复杂的过程,如果您没有这方面的经验,我不建议您尝试。
    【解决方案2】:

    您可以使用 Matlab 的 bwdist 函数计算 Hausdorff 距离。您将计算一张图像的距离变换,在另一张图像的边缘点对其进行评估,然后取最大值。 (您也可以取总和,在这种情况下,它称为倒角距离。)对于这个问题,您可能需要对称 Hausdorff 距离,因此您可以在两个方向上进行计算。

    Hausdorff 和倒角距离都可以衡量特定对齐方式的匹配质量。要找到最佳配准,您需要尝试多种对齐转换并评估它们以寻找最佳配准。正如另一个答案中所建议的那样,您可能会发现使用注册现有工具比编写自己的工具更容易。

    【讨论】:

    • 非常感谢您的回复。我已经计算了与另一幅图像的边缘端点相对应的像素的一个图像的距离变换,并且我还取了每个边缘的最大值。现在我对另一个图像的每个边缘都有一个距离。很抱歉提出这个 nieve 问题,但是,如何使用这些信息创建通信?
    • bwdist 函数有第二个返回值,它为您提供最接近的对应像素的索引。
    • 再次感谢您的回复。我会试一试,然后告诉你结果。
    • 我只是想知道当您说“尝试多个对齐转换”时,您的意思是说必须对所有可能的姿势(X、Y、Z、omega、phi、kappa)进行详尽的搜索?还是有更好的方法来优化搜索?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多