搜索图像上指定项目的最快方法?

Kar*_*arl 3 theory algorithm performance image image-processing

想象一下,我们有一个简单的2D绘图,填充了许多非重叠的圆圈,只有几颗星.

如果我们要在所有这些圈子中找到所有星星,我可以想到很少的方法.蛮力就是其中之一.另一个可能是缩小图像大小(到仍然可以区分对象的最佳点),然后应用蛮力并映射到原始图像.蛮力的缺点当然是非常耗时的.我正在寻找更快的方法,可能是最快的方法.

在简单的2D图像上搜索指定项目的最快图像处理方法是什么?

mpe*_*kov 5

在图像中查找对象的一种典型方式是通过互相关.基本上,您会查找掩码(您尝试查找的对象)与图像之间的互相关性最高的位置.该位置是您尝试查找的对象的可能位置.

为了简单起见,我将引用您试图找到的星形物体,但一般来说它可以是任何形状.

上述方法存在一些问题:

  • 面具的大小必须与星星的大小相匹配.如果你不知道星星的大小,那么你将不得不尝试不同大小的面具. 图像金字塔比迭代尝试不同大小的蒙版更有效,但仍需要额外的努力.
  • 类似地,掩模和星形的方向必须匹配.如果他们不这样做,则互相关将不起作用.

由于这些原因,您对问题的了解越多,它就越简单.这就是人们在评论中要求您提供更多信息的原因.据我所知,通用解决方案并不存在.也许更有知识的人可以纠正我.

正如您所提到的,缩小图像的大小将有助于减少方法的计算时间.在我看来,它不是解决方案的核心要素 - 它只是一个可选的优化步骤.