图像拼接的相位相关(使用汉明窗)

发布于 2025-01-07 19:49:18 字数 604 浏览 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;
pt.y= src->height-maxloc.y;
if(pt.x>(temp->width/2))
  pt.x= -(maxloc.x+1);

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

I use phase correlation for image stitching and it gives good results for most part of my test data. I just stitiching pairs of image left-right and top-bottom(only shift)
But there is some strange behaviour.
First strange coordinates, I must convert coordinates

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

Then usage of Hamming window it seems that when I use Hamming window for left-right stitching it works better(even for bad cases), but if I use Hamming window for top-bottom it works bad (even in good cases).
And I think I don't need to separate individual cases for L-R and T-B, I expect that phase correlation just give me the global maximum, but it seems that some mistakes in understanding of FFT or phase correlation.
here is the code that I use http://codepaste.ru/9415/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉城 2025-01-14 19:49:18

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

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

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

Your code has a glaring mistake:

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

Please can you show the images that you are trying to register.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文