计算圆和直线的变换

use*_*754 5 python opencv image-processing image-registration

我试图确定两个图像之间的变换(旋转+平移+缩放)以便移动它们。

这些图像是用两种不同的方式拍摄的,产生了截然不同的纹理。所以我不能使用基于维持光流的技术。我认为对图像进行阈值处理以提取几何形状会很好(请参见下面的示例)。但后来我很难看到我能做什么......也许提取垂直线和中心圆来帮助我提取我的变换。

我使用 python 工作,我研究了 Opencv 可以提供的功能,但目前还没有取得什么成功。

在此输入图像描述

--- 稍后编辑 ---

我用霍夫变换检测了圆和线(见下图)。事实上,这将有助于正确注册。但是,我可以使用 Python 上的什么工具来注册这些元素呢?我经常使用光流守恒,但在这种情况下它相当复杂......

在此输入图像描述

小智 2

如果图案始终是通道内的磁盘,并且具有干净的二值化,那么这看起来是一个简单的问题。

您可以可靠、准确地获得磁盘中心和面积,从而获得半径。从侧面斑点中,您可以找到垂直线(霍夫,或拟合轮廓内部部分的线,或只是穿过成对的远距离点的线)。

然后,您可以根据半径之比或线之间的距离之比获得比例。旋转角度由垂直方向给出。并通过中心坐标进行平移。

实际上,您有太多数据需要求解 4 DOF,并且有多种可能的解决方案。根据这些图像的生成方式,您应该使用最可靠的信息。

在此输入图像描述