Nie mam, ale mogę podpowiedzieć, jak zrobić.
Zakładam że obraz przechowywany jest w trzech macierzach o identycznych rozmiarach, odpowiednio dla każdej składowej R, G i B. Można też inaczej, np. trójelementowy wektor macierzy, czy jedna macierz z wektorami RGB.
Na początek trzeba stworzyć macierze w których przechowywany będzie obraz przetworzony, rozmiary takie same jak źródła.
Potem w pętli dla każdej z macierzy R, G i B "wyciągasz" sobie "podmacierz" (funkcja submatrix()) z macierzy źródłowej. Powinna ona wyglądać tak, że jej środkowym elementem jest aktualnie przetwarzany punkt i do tego jeszcze punkty go otaczające. Przetwarzasz kolejne punkty, obojętnie, czy wierszami, czy kolumnami.
Problemem jest praca przy krawędziach, trzeba wtedy ograniczyć zakres z którego będzie wycinana "podmacierz" do współrzędnych obrazu.
Nie pamiętam, czy MathCAD posiada jakąś funkcję sortowania macierzy, jeżeli tak, to należy jej użyć, jeżeli nie, to napisać własną i przy jej pomocy posortować podmacierz, z której następnie pobiera się środkowy punkt i wkleja do macierzy docelowej.
Co do samej idei wygląda to tak, jakbyś przesuwał prostokąt (najczęściej kwadrat) o rozmiarach większych niż 1x1 nad każdym punktem obrazu źródłowego, liczył medianę ze wszystkich punktów znajdujących się wewnątrz prostokąta i wartość tej mediany wstawiał w obraz docelowy w punt o współrzędnych takich jak pozycja środka prostokąta w obrazie źródłowym.