首页 > 解决方案 > 从两个 2D numpy 数组中提取重叠单元格的方法

问题描述

我在下图中有一个numpy array以蓝色显示的 2D 和一个以绿色显示的较小的 2D numpy array

大型蓝色 2D 阵列与较小的部分重叠绿色 2D 阵列。 重叠显示为红色,绿色阵列的中心有一个黑色 *X*。

我正在寻找一种通用numpy方法,它将从一个位置tupleX上图中)提取蓝色和绿色数组的重叠部分(以红色显示),如下所示:

blue_overlap, green_overlap = np.extract_overlap(blue_array, green_array, position)

X不必一定是绿色区域的中心,也可以是角落单元格。如果绿色阵列的宽度/高度不是奇数,则改用角单元是有意义的。

只要绿色区域完全在蓝色区域的范围内,问题就是基于 的位置进行简单切片X。但是当绿色区域延伸到蓝色区域的边界时,我需要做一些我觉得已经可以以某种方式实现numpy但我还没有找到的调整。

这样的方法存在吗?

标签: pythonarraysnumpyoverlap

解决方案


推荐阅读