Код: Выделить всё
import numpy as np
img = np.zeros((5, 5, 3), dtype='u1')
a = (1, 2, 3)
b = (3, 2, 1)
img[1:4, 1:4] = a
img[1, 1] = b
pat = img[1:4, 1:4]
win = np.lib.stride_tricks.sliding_window_view(img, window_shape=(3, 3, 3))
matches = np.all(win == pat, axis=(0, 1))
print(matches)
Код: Выделить всё
[[[[False False False]
[False False False]
[False False False]]
[[False False False]
[False True False]
[False False False]]
[[False False False]
[False False False]
[False False False]]]]
Код: Выделить всё
[[False False False]
[False True False]
[False False False]]
Сопоставление pat с img имеет смысл только в 2D, то есть при тестировании:
Код: Выделить всё
img[0:3, 0:3] == pat
img[0:3, 1:4] == pat
img[0:3, 2:5] == pat
img[1:4, 0:3] == pat
...
Подробнее здесь: https://stackoverflow.com/questions/798 ... n-matching
Мобильная версия