我有一个大图像,其中包含对背景感兴趣的"斑点".我有所有blob的位置(质心,边界框,区域).我想在图像中裁剪有限数量的固定大小的区域,这些区域允许我捕获大部分斑点.以下示例针对同一图像中的1,2或3个裁剪区域.

此示例显示裁剪1区域(红色)相对容易:只选择具有尽可能多的blob的区域.这可以通过尝试所有事情或者可能通过使用核密度估计器或类似事件计算blob的密度来解决.
但裁剪2个区域(蓝色虚线)不仅仅是在上面第一个选择之后裁剪下一个最好的作物.这是一个新问题,我需要找到2种作物的最佳组合.尝试2种作物(蛮力)的所有组合可能变得太计算成本(我有很多图像要处理,它们很大).
同样,裁剪3个区域(绿色)是一个新问题,而蛮力甚至更不适合.在该特定示例中,3个区域中的2个与蓝色情况相同并且添加了新的情况,但这不是一般情况(我只是想显示稍微复杂的情况).
我不知道解决n作物案例的算法.我想知道是否有一个理论/众所周知的解决方案来解决这个问题.
此外:
提前感谢任何指针.
PS:编码语言在这里并不重要,因为算法的核心(根据斑点的位置/大小找到作物的最佳位置)只需要计算小阵列(每个图像的位置/大小约为100个斑点) .我可能会使用Python或R.