Shock Filtering in Matlab

Very simple image enhancement and sharpening using shock filters
3.3K 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 (2024). 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

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0