2017-08-21 90 views
0

我有一個4維數組,我需要找到一些模式。模式將在最後兩個維度進行評估,掃描前兩個維度。 它有點像在圖像上使用命中或者失敗的功能,但不是在圖像的兩個維度上針對這些點的值對圖案進行評估,而是需要在兩個維度上掃描以尋找另外兩個圖案點及其周圍的尺寸。 我目前的代碼看起來像這樣,但考慮到它會查找除了下面描述的兩個之外的模式,並且實時運行,我需要使運行速度更快。查找多維數組中的模式

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]掃描,但無法得到它的工作完美。你們有解決這個問題的想法嗎?

回答

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])