Shock Filtering in Matlab

Very simple image enhancement and sharpening using shock filters

You are now following this Submission

Shock filters are based in the idea to apply locally either dilation or erosion process, depending on whether the pixel be-longs to the influence zone of a maximum or a minimum.
The decision between dilation and erosion is made using the sign function (also called the signum) s in set {-1, 0, +1} based on the Laplace operator (Kramer-Bruckner, 1975).
Applying this procedure produces a sharp discontinuity called shock at the borderline between two influence zones. This way, the final equation becomes u_t=sign(delta(u) .* |gradient(u)|.

The resulting effect is basically enhancement/sharpening of the input image.

F. Guichard, J. Morel; “A Note on Two Classical Shock Filters and Their Asymptotics”; Michael Kerckhove (Ed.): Scale-Space
and Morphology in Computer Vision, LNCS 2106, pp. 75-84; Springer, New York; 2001.

G. Aubert, P. Kornprobst; “Mathematical Problems in Image Processing”; Applied Mathematical Sciences 147; Springer, New
York; 2002.
J. Weickert Coherence-enhancing shock filters; In B. Michaelis, G. Krell (Eds.): Pattern Recognition. Lecture Notes in Computer
Science, Vol. 2781, Springer, Berlin, 1-8, 2003.

Cite As

Tolga Birdal (2026). Shock Filtering in Matlab (https://www.mathworks.com/matlabcentral/fileexchange/29593-shock-filtering-in-matlab), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0.0