Shock Filtering in Matlab

Very simple image enhancement and sharpening using shock filters
3.4K Downloads
Updated 1 Dec 2010

View License

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 .

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Version Published Release Notes
1.0.0.0