Accelerating the pace of engineering and science

Documentation Center

• Trial Software

imhmin

H-minima transform

Syntax

I2 = imhmin(I,h)
I2 = imhmin(I,h,conn)

Description

I2 = imhmin(I,h) suppresses all minima in I whose depth is less than h. I is a grayscale image and h is a scalar.

Regional minima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a higher value.

By default, imhmin uses 8-connected neighborhoods for 2-D images, and 26-connected neighborhoods for 3-D images. For higher dimensions, imhmin uses conndef(ndims(I),'maximal').

I2 = imhmin(I,h,conn) computes the H-minima transform, where conn specifies the connectivity. conn can have any of the following scalar values.

Value

Meaning

Two-dimensional connectivities

4

4-connected neighborhood

8

8-connected neighborhood

Three-dimensional connectivities

6

6-connected neighborhood

18

18-connected neighborhood

26

26-connected neighborhood

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.

Code Generation

imhmin 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.

Class Support

I can be of any nonsparse numeric class and any dimension. I2 has the same size and class as I.

Examples

Create a sample image with two regional minima.

```a = 10*ones(10,10);
a(2:4,2:4) = 7;
a(6:8,6:8) = 2

a =

10    10    10    10    10    10    10    10    10    10
10     7     7     7    10    10    10    10    10    10
10     7     7     7    10    10    10    10    10    10
10     7     7     7    10    10    10    10    10    10
10    10    10    10    10    10    10    10    10    10
10    10    10    10    10     2     2     2    10    10
10    10    10    10    10     2     2     2    10    10
10    10    10    10    10     2     2     2    10    10
10    10    10    10    10    10    10    10    10    10
10    10    10    10    10    10    10    10    10    10```

Suppress all minima below a specified value. Note how the region with pixel valued 7 disappears in the transformed image.

```b = imhmin(a,4)

b =

10    10    10    10    10    10    10    10    10    10
10    10    10    10    10    10    10    10    10    10
10    10    10    10    10    10    10    10    10    10
10    10    10    10    10    10    10    10    10    10
10    10    10    10    10    10    10    10    10    10
10    10    10    10    10     6     6     6    10    10
10    10    10    10    10     6     6     6    10    10
10    10    10    10    10     6     6     6    10    10
10    10    10    10    10    10    10    10    10    10
10    10    10    10    10    10    10    10    10    10```

References

[1] Soille, P., Morphological Image Analysis: Principles and Applications, Springer-Verlag, 1999, pp. 170-171.