【问题标题】:phase correlation for image stitching (using of Hamming Window)图像拼接的相位相关(使用汉明窗)
【发布时间】:2012-02-21 12:28:20
【问题描述】:

我使用相位相关进行图像拼接,它为我的大部分测试数据提供了良好的结果。我只是缝合左右和上下的图像对(仅移位) 但是有一些奇怪的行为。 第一个奇怪的坐标,我必须转换坐标

//if L-R
pt.x= src->width-maxloc.x;
pt.y= src->height-maxloc.y;
if(pt.y>(temp->height/2))
  pt.y= -(maxloc.y+1);
//if T-B
pt.x= src->width-maxloc.x;
pt.y= src->height-maxloc.y;
if(pt.x>(temp->width/2))
  pt.x= -(maxloc.x+1);

然后使用汉明窗口,似乎当我使用汉明窗口进行左右拼接时效果更好(即使在坏情况下),但如果我使用汉明窗口进行上下拼接,效果会很差(即使在好的情况下) . 而且我认为我不需要将 L-R 和 T-B 的个别情况分开,我希望相位相关只是给我全局最大值,但似乎在理解 FFT 或相位相关方面存在一些错误。 这是我使用的代码http://codepaste.ru/9415/

【问题讨论】:

    标签: image-processing fft fftw image-stitching cross-correlation


    【解决方案1】:

    你的代码有一个明显的错误:

    //if L-R
    pt.x= src->width-maxloc.x;
    pt.y= src->height-maxloc.y;
    if(pt.y>(temp->height/2))
      pt.y= -(maxloc.y+1);
    //if T-B
    pt.x= src->width-maxloc.x;  // (repeated)
    pt.y= src->height-maxloc.y; // <- overwrites previous value
    if(pt.x>(temp->width/2))
      pt.x= -(maxloc.x+1);
    

    请您出示您尝试注册的图片。

    【讨论】:

    • 不,这不是错误,我只是发布左右和上下两种情况的代码(实际上它们在不同的地方)。我知道图像之间的关系(图像对)但是不知道重叠的百分比,所以我只对一半的图像进行相位相关(以降低计算复杂度)但我不明白为什么必须转换坐标。我想实现这样的目标xuvtools.org/screenshots 我稍后会发布一些示例。
    • 现在,我什至认为我在使用 FFTW 完成的相位相关代码中有一些错误,这里是代码 codepaste.ru/9423 ,我像 phase_correlation2D(img,img,poc) 一样测试它,它给了我(0,0)。
    • 由于傅里叶变换的重复性质,需要转换坐标:-n 处的平移看起来像 (max-n) 处的平移。您希望这对图像的翻译是什么?
    • 对于这张图片 (190,1750)。我找到了一些关于图像零填充的信息,也许对我有帮助?我想在没有任何关于其方向的先验信息的情况下拼接图像。
    • 这 2 张图片重叠太少,无法使用 PC。零填充提高了准确性,而不是范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    相关资源
    最近更新 更多