Специальный медианный фильтр с направлением градиента

#python

Вопрос:

Я нашел специальный медианный фильтр в статье и хотел реализовать его в своей диссертации, которой я сейчас занимаюсь. Проблема в том, что я понятия не имею, как это правильно реализовать в python. Вот изображение, объясняющее фильтр:

изображение медианного фильтра

Мои данные изображения хранятся в массиве с формой 192x3600x1. Вычисление Gx, Gy и направления не является проблемой.

 import numpy as np

gx = np.diff(data, axis = 1)[:191,:]
gy = np.diff(data, axis = 0)[:,:3599]

direction = np.arctan2(gx,gy)
 

Теперь у меня есть фильтр 5×5, возьмите центральный пиксель (на изображении пиксель зеленого цвета) и его направление. А затем я беру только соседние пиксели, которые находятся в нужном направлении и имеют евклидово расстояние 15 (желтые пиксели на изображении), и вычисляю медиану только по этим значениям. В этом случае медианное значение будет равно 126. Есть идеи, как я могу реализовать эту часть в python? Любая помощь будет признательна!