我必须要有图像,一个模拟,一个真实的数据,有亮点。
模拟:

现实:

我能很好地探测到斑点并得到坐标。现在我需要计算两个坐标系之间的变换矩阵(尺度,旋转,平移,也许剪切)。如果需要的话,我可以手工挑选一些(5-10)个相应的点给算法。
我已经尝试了很多方法,包括:两个ICP:https://engineering.purdue.edu/kak/distICP/ICP-2.0.html#ICP的实现。
仿射变换的实现:Determining a homogeneous affine transformation matrix from six points in 3D using Python
how to perform coordinates affine transformation using python? part 2
他们中的大多数人都以这样的方式失败了:

红点是将仿真结果转化为现实坐标系的点.
到目前为止,最好的方法是产生以下结果的how to perform coordinates affine transformation using python? part 2:

正如您所看到的,缩放和转换主要是有效的,但是图像仍然需要旋转/镜像。
对如何得到一个有效的算法有什么想法吗?如果需要的话,我可以提供我目前不工作的实现,但它们基本上是相互关联的。
发布于 2017-03-23 10:53:28
我发现了错误。
我使用plt.imshow来显示模拟图像和真实图像,并从中选择计算转换的参考点。
结果,由于通常的数组到图像索引翻转-伏都教(或对我这边的转换不好),我需要从模拟图像中切换参考点的x和y指数。
有了这个,使用这个how to perform coordinates affine transformation using python? part 2一切都很好
https://stackoverflow.com/questions/42953880
复制相似问题