在numpy数组中进行迭代的圆环正方形方法

时间:2019-04-10 17:19:16

标签: python arrays numpy opencv

我正在OpenCV中处理一些视频,该视频当然会将帧作为二维numpy数组处理。我想迭代搜索特定像素周围的区域。我不想按列然后按行进行迭代,而是想通过蛇形正方形模式遍历值。我将在下面说明。

X是我们开始环顾四周的像素。

000   100   110   111   111   111
0x0 > 0x0 > 0x0 > 0x0 > 0x1 > 0x1
000   000   000   000   000   001

如您所见,它将继续在起点附近弯曲,直到到达起点所在的列。此时,它应该再向左延伸一列,并开始在数组中向上移动。这不会是无限的迭代,但是当一定数量的角值与给定值匹配时,它将停止运行。

到目前为止,我已经能够遍历数组,但是我不确定如何告诉它在迭代过程中动态变化的某个点停止。

def search_local_area(area, start_pt):
    """Search the area around the pixel identified as a 'good point' in a roundabout-square."""
    test = np.zeros_like(area)
    for row, _ in enumerate(area[..., start_pt]):
        for column, value in enumerate(area[start_pt, ...]):
            test[row, column] = value

上面的代码只是将值复制到测试数组中,以表明它在正确的方向上进行迭代。

0 个答案:

没有答案