匹配从一个图像到另一个图像的曲线

我正在做类似于这个问题的事情:将曲线图案匹配到图像的边缘

基本上,我在两幅图像中有相同的曲线,但两幅图像之间有一些仿射变换。 这里是两个图像的例子:

此搜索

在这里输入图像描述 镜像2

因此,为了访问Image2,您可以将一些翻译,旋转,缩放等应用于Image1。

有谁知道如何解决这个转换?

相位相关不起作用,因为它不仅仅是翻译。 由于没有足够的细节来解决翻译,旋转,缩放(这几乎是二进制图像),光流不起作用。 我不确定霍夫变换是否会给我提供很好的数据。


我认为像sift或surf这样的关键点匹配算法也可以用于这类数据。 基本思想是在每幅图像中找到有限数量的“有趣”关键点,然后将这些关键点配对。

下面是一个在线ASIFT演示的图片快速测试:http://demo.ipol.im/demo/my_affine_sift/result?key=BF9F4E4E006AB5168497709836C39C74#

在这里输入图像描述

它可能更适合于正常的灰度图像,但它似乎适用于这些数据。 它看起来像线条连接两个曲线周围的大致相同的点; 将所有这些对插入到OpenCv中的FindHomography函数之类的东西中,这些小的差异应该甚至可以自行排除,并且您可以在两个图像之间获得仿射变换矩阵。

对于您的特定数据,您可能会想出更好的关键点描述符; 也许是检测线条结束,线条交叉和尖角的东西。

或者如何:这是一个更多的工作,但是如果你可以将你的路径矢量化到贝塞尔曲线或b样条,你可以从样条描述符中获得一些自然的关键点。
我不知道任何矢量化库,但Inkscape有一个基本的实现,您可以使用它来测试该方法。 一旦你有一小组描述符而不是一个大的二维位图,你只需要在两个图像之间匹配这些描述符,按照FindHomography。


回复评论:

兴趣点仅仅是具有某些特性的小区域。 所以这些地区的中心可能是黑色或白色; 该算法不专门查找白色像素或大尺寸形状,如曲线。 重要的是,两条曲线的连线大致相同,至少乍看之下。

链接地址: http://www.djcxy.com/p/50045.html

上一篇: Match curves from one image to another

下一篇: dimensional array to an arbitrary degree?