Я пытаюсь научиться использовать numpy для эффективного решения проблем, связанных со скользящим окном в различных обстоятельствах. Вот пример, иллюстрирующий интересующий меня тип проблемы:
У меня есть большая 2d-матрица, и я хотел бы выполнить вычисления для соседей каждого элемента в матрице. Например, я могу захотеть найти максимальное значение, исключая какое-то специальное значение негиборов по индексам (x-1,y)(x+1,y+1) по каждому индексу, и поместить результат в другой другой 2d " Матрица решения.
Обратите внимание, что convolution2d, хотя и полезен, не будет работать для меня в этой ситуации, потому что у меня есть определенные операции, которые нужно выполнять для каждого пикселя, и я хочу делать это только для определенных соседей (каждого пикселя).
Также бонусом было бы обеспечение того, чтобы я не выходил за пределы.
Наконец, можно ли использовать любое состояние? В случаях, когда все соседи равны 0, я надеюсь назначить новый целочисленный идентификатор, который я увеличиваю каждый раз, когда это происходит.
Вот пример:
Window:
0 0 1
1 0 0
0 0 0
Input:
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 9 9 0 0 9 0 0
0 0 0 0 0 0 0 0 0
Output:
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 2 0 0
0 0 0 0 0 0 0 0 0
all neighbors are 0...
? - person Divakar   schedule 19.09.2015scipy.ndimage.measurements.label
< /a> делает то, что вы хотите? Хотя мне непонятно, как это связано с раздвижными окнами. - person   schedule 20.09.2015