match_template 来自 skimage returns 1X1 区域

match_template from skimage returns 1X1 area

我正在尝试使用来自 skiimage 的 match_template 来对齐天文物体的连续图像。图像是 500x500 的 numpy 区域,非常相似。唯一的区别是物体本身的缓慢旋转(运动小于图像之间的像素,我试图通过使平均模板超过 10 张图像来增加差异,但它没有太大帮助,结果几乎相同)。结果我只得到 1x1 数组

   In [22]: result
   Out[22]: array([[ 0.98132336]], dtype=float32)

为什么会这样?

好吧,这花了我一些时间,但我弄清楚了是怎么回事。
问题是图像彼此太相似了。如果图像之间的变化是亚像素分辨率,这个特定代码将 return 只是一个数字,仅仅是因为图像几乎完美地相互匹配。
我找到的解决方法是基于我用 IDL 编写的旧代码,在其中,通过使用傅里叶变换,我设法计算出我需要在系列图像之间使用的偏移量,以便我可以将它们对齐。 由于我需要对图像进行分析,因此我需要非常高的精度。
如果您遇到同样的问题,请给我发消息。我很乐意分享代码。你可以自由使用它,只要你在你的论文中引用我。
当我发表论文时,我会把我用来分析的所有代码(包括这个)都放在GitHub上。同样的条件将适用。