首页 > 解决方案 > 查找两个匹配形状之间的转换

问题描述

给定两张具有相似斑点的图像,是否有一种简单的方法可以找到它们之间的转换?例如,我有两个图像,如下所示:

一 二

右边是神经网络的输出,而左边是近似值(仅从形状的角度来看)。我正在寻找转换以移动左侧图像以最佳匹配右侧的位置和方向。在这种情况下,大约 150-160 度 CC 的旋转,以及向上和向右的平移。

这似乎是一个带有一些附加约束的形状匹配问题,但我想知道是否有办法做到这一点而不必执行一堆测试转换/滑动窗口。我发现的大多数示例都是用于分类的,而位置示例不支持旋转。

到目前为止我的想法......我看过 Hu 时刻和 openCV 的 matchShapes,它们似乎会让我得到相似性(和镜像,这是数据中的一种可能性,因此是可取的),但我不是确定如何在不使用某种窗口的情况下使用它们。另一种选择是 SIFT 或另一种基于特征的方法,但鉴于数据的信息量低且形状不太相似(Hough 变换作为基础?),我认为它不会特别好。另一种蛮力方法可能是计算质心的差异,将左图像向右移动,然后旋转直到找到具有最大 Jaccard 索引的方向(或使用矩来找到旋转?),但这是一样的我的那种东西

我的第一直觉就是制作一个神经网络来做这件事,但我觉得我只是想念一个更好的答案。

标签: pythonopencvimage-processingscikit-image

解决方案


推荐阅读