/// Prosty filtr bilateralny ("wij/skolopendra")...

// Filtr bilateralny (parametry 'S' i 'D' dobierane empirycznie)
S = ???; 
D = ???;

Y = ones(N, N); diffY = zeros(N, N);
for n = S + 1:N - S
   for m = S + 1:N - S
      diffY(n, m) = sum(abs(diff(X(n - S:n + S, m - S:m + S))));
      szXY = max(0, S...
           - floor(D ...
           * diffY(n, m)));
               
      Y(n, m) = mean(X(n - szXY:n + szXY, m - szXY:m + szXY));      
   end      // median //
end

