I2 = imhmax(I,h)
I2 = imhmax(I,h,conn)
I2 = imhmax(I,h) suppresses all maxima in the intensity image I whose height is less than h, where h is a scalar.
Regional maxima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a lower value.
By default, imhmax uses 8-connected neighborhoods for 2-D images, and 26-connected neighborhoods for 3-D images. For higher dimensions, imhmax uses conndef(ndims(I),'maximal').
I2 = imhmax(I,h,conn) computes the H-maxima transform, where conn specifies the connectivity. conn can have any of the following scalar values.
Connectivity can be defined in a more general way for any dimension by using for conn a 3-by-3-by- ...-by-3 matrix of 0's and 1's. The 1-valued elements define neighborhood locations relative to the center element of conn. Note that conn must be symmetric about its center element.
imhmax supports the generation of efficient, production-quality C/C++ code from MATLAB. When generating code, the optional third input argument, conn, must be a compile-time constant. Generated code for this function uses a precompiled platform-specific shared library. To see a complete list of toolbox functions that support code generation, see List of Supported Functions with Usage Notes.
I can be of any nonsparse numeric class and any dimension. I2 has the same size and class as I.
a = zeros(10,10); a(2:4,2:4) = 3; % maxima 3 higher than surround a(6:8,6:8) = 8; % maxima 8 higher than surround b = imhmax(a,4); % only the maxima higher than 4 survive.
 Soille, P., Morphological Image Analysis: Principles and Applications, Springer-Verlag, 1999, pp. 170-171.