for i in np.arange(3, height-3)
указывает, что вы зацикливаетесь на изображении и оставляете 3-пиксельную границу.
for k in np.arange(-5,6)
указывает, что вы зацикливаетесь на ядре, для которого требуется 5-пиксельная граница.
image.item(i+k, j+l)
показывает, что i+k
должно быть между 0 (включено) и height
(исключено). Учитывая указанные выше ограничения, на самом деле это значение между 3-5=-2
(включено) и height-3+6=height+3
(исключено). Очевидно, вы будете индексировать вне границ.
Решение тогда состоит в том, чтобы отрегулировать границу во внешних циклах, чтобы они были np.arange(5, height-5)
.