python - 仅沿一个方向测量两个图像之间的偏移
问题描述
我必须测量两个单色图像之间的偏移。
这些图像实际上是校准前的光谱,非常嘈杂并且充满了不需要的特征,但它们基本上看起来像下面这样
我知道在不同的图像之间,它们沿 x 方向移动,但不会沿 y 方向移动。我想知道它们之间沿 x 方向的偏移量。
幸运的是,我在 , 中找到了一个函数skimage
,register_translation
它可以用于任意亚像素精度。但问题是,我只想知道沿 x 方向的偏移,并且我希望得到的 y 方向偏移为 0,但程序发现同时向 x 和 y 偏移,大概是沿着垂直于特征。(图中标注为蓝色箭头)
所以,我想知道:
是否有任何功能或包
python
可以仅测量两个图像之间沿一个方向的偏移,或者甚至有任何先验知识?找到两个嘈杂图像之间的变化的正确方法是什么?在 FFT 空间中找到最大的互相关值会起作用吗?
解决方案
register_translation
在这种情况下,如果给你 xy 移位,应该做一些简单的数学运算,无论是向量还是分量形式。如果不存在 y 偏移,您可以计算所需的 x 移动,这正是您想要的。我正在旅行,所以很遗憾现在不能给你图表,建议把三角形画出来。
所需的额外 x 位移 ( x_extra
) 定义为:
x_extra = y * tan[arctan(y_shift/x_shift)]
简化为:
x_extra = y_shift^2 / x_shift
因此,x 的总偏移为:
x_shift_total = x_shift + x_extra
x_shift 由register_translation
.
如果你然后移动imageA
,x_shift_total
它应该与 对齐imageB
,假设x_shift
给定的register_translation
是正确的。
@jni我很想将其作为一个选项来实现register_translation
!
推荐阅读
- python - Tensorflow 2.0 - 这些模型预测是否代表概率?
- matlab - 使用具有中心极限定理的 Matlab 的偏置模具的 PDF 和 CDF
- ios - 快速图像/按钮滑块
- javascript - 使用 Webpack 构建 Gatsby 组件无法转换 Gatsby 模块
- bash - 如何在 { grouped } shell 命令中设置父变量?
- javascript - 在 React 中,等待链在中间停止时如何调试?
- c# - 如何将类似于json对象的对象转换为c#?
- javascript - 如何在 Firefox 71.0 中使用 Javascript 中的 localStorage
- c# - 如何获取 chromiumwebbrowser html 文档?
- python - SymPy 中的不一致矩阵