问题描述
鉴于从图像中获取了许多补丁,任务是创建由补丁组成的单个图像。
我尝试过幼稚的解决方案:
问题在于此解决方案非常慢,主要瓶颈是补丁比较。 有没有更好的方法来做到这一点呢? 也许是更好的补丁选择和比较方法?
解决方法
我会尝试:
-
使所有图像中所有特征点的排序一次。
因此创建一个列表,在该列表中存储特征的哈希值或仅存储特征的哈希值,以及创建该图像的图像甚至位置的信息。然后按哈希(或即时)对列表进行排序。
作为一项功能,选择您现在用于比较图像的内容。由于没有缩放或旋转功能,因此不需要缩放和旋转不变功能,但是如果使用这些功能,则不会受到伤害。我通常选择局部强度最大或最小的像素。然后计算像素的直方图,直到它与该像素的距离保持恒定(旋转时不变),然后对直方图进行哈希处理...
-
浏览列表
-
检查列表中是否有一个以上的哈希,但是来自不同的图片
在有序列表中,它们将被分组在一起
-
如果是,则比较/合并功能所属的图像
还会更新功能列表,因此只需将列表中的图像ID更改为新的合并图像。
如果我看对了,您当前的方法是O(m*n^2)
,它将是O((n*m)*log(n*m))
,其中n
是图像数量,m
是每个图像的平均特征数量。