0

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

//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);

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

4

1 回答 1

0

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

//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);

请您显示您尝试注册的图像。

于 2012-02-21T19:30:16.730 回答