在多维数组中查找模式

时间:2017-08-21 01:03:36

标签: python opencv numpy scipy

我有一个四维数组,我需要在其中找到一些模式。模式将在最后两个维度中进行评估,扫描前两个维度。   这有点像在图像上使用点击或未命中功能,但不是在图像的两个维度上评估这些点的值上的图案,我需要扫描两个维度,寻找另外两个维度中的图案关键点及其周围环境。 我当前的代码看起来像这样,但考虑到它将寻找除了下面描述的两个模式之外的模式,以及实时运行,我需要更快地运行。

image = np.empty((240,320,2,3), np.bool)

# image receive some data

for y in range(1, 239):
    for x in range(1, 319):
        if image[y][x-1][1][1] and image[y][x][1][2]:
            FindPattern1[y][x] = True
        if image[y-1][x][0][1] and image[y][x][0][2]:
            FindPattern2[y][x] = True

我考虑使用带有多维结构的命中或未命中变换来扫描image[y][x],但无法使其完美运行。你们有什么想法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

好像你只需要做一些花哨的索引和logical_and

find_pattern_1 = np.logical_and(image[1:, :-1, 1, 1], image[1:, 1:, 1, 2])
find_pattern_2 = np.logical_and(image[:-1, 1:, 0, 1], image[1:, 1:, 0, 2])