使用NumPy将2D数组的子部分中的所有值设置为另一个值

时间:2012-09-30 19:07:22

标签: python numpy

我有一个2D网格值。例如,它们可能如下所示:

0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 0 
0 1 1 1 1 1 1 1 1 1 0 
0 1 0 0 0 1 1 0 0 1 0
0 1 0 0 0 1 1 0 0 1 0
0 1 0 0 0 1 1 0 0 1 0
0 1 0 0 0 1 1 0 0 1 0
0 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 0 
0 0 0 0 0 0 0 0 0 0 0

我想要做的是将1中包含的所有0设置为不同的值。

基本上我想做的是在行或列中获取1的第一个实例和1的最后一个实例,然后在此边界内的任何0我想要设置为另一个值。

我可以通过获取第一个和最后一个实例来强制它,然后手动设置它,但是有一种方法可以更有效地执行此操作吗?

1 个答案:

答案 0 :(得分:1)

如果您执行更多图像处理,通常skimage可能会有更多算法。 scipy.ndimage.binary_fill_holes很好地涵盖了这个问题。