对齐两个二进制矩阵以获得最大重叠

问题描述 投票:1回答:1

我想找到两个二进制矩阵的最大重叠1的数量,仅允许平移(不允许旋转和反射)。我的问题与this one非常相似,但我想做的是以一种有效的方式实际编码OP在该问题中提出的“天真”解决方案。

所以,回顾一下,我有两个矩阵(不一定具有相同的大小),例如,条目为01

   [0 0]      [0 0 1]
A: [1 1]   B: [0 0 1]
   [1 0]      [1 0 0]

最大重叠可以通过将一个矩阵的一个角对齐到另一个矩阵的每个可能位置并计算所有重叠的1来找到。然后,我们发现最大重叠量是two,并且当我们将A的左下角(2,0)对准B的[[1,2,]时给出。我想在python中编写此方法的简单(并且可能是快速的)实现,但我真的不知道从哪里开始...

我想找到两个二进制矩阵的最大重叠1的数量,仅允许平移(不允许旋转和反射)。我的问题与此非常相似,但是...

python numpy matrix binary counting
1个回答
0
投票
要找到最大重叠量,可以使用scipy的correlate2d功能:
© www.soinside.com 2019 - 2024. All rights reserved.