Measure of geometric parameters in 2D or 3D images (surface area, perimeter, Euler Number...)
Updated 11 Jan 2021

View License

Contains various functions for measuring or estimating geometric quantities from 2D or 3D images.

Parameters available for 2D images are:
* the area (number of pixels)
* the perimeter (based on Crofton formula)
* the(2D) Euler Number

Parameters available for 3D images are:
* the volume,
* the surface area (measured using the Crofton formula),
* the surface area of the interface between two labels
* the mean breadth (also known as integral of mean curvature),
* the (3D) Euler Number

Most functions work both for binary and label images. It is possible to specify options (connectivity for Euler Number, number of directions for perimeter or surface area), as well as the spatial calibration of images. For some parameters, it is also possible to estimate the density with respect to image area or volume.

Example 1: measure perimeter in 2D label image
lbl = bwlabel(imread('coins.png') > 100);
p = imPerimeter(lbl)
p =
184.8668 154.9495 185.1921 267.1690 187.3183 179.5038 182.7406 180.8445 155.5049 155.5049

Example 2: measure surface area in 3D binary image
img = analyze75read(analyze75info('brainMRI.hdr'));
bin = imclose(img>0, ones([5 5 3]));
S = imSurface(bin, [1 1 2.5]) % specify resolution
ans =

The latest development version can be found on GitHub within the MatImage project: .

These functions were developped when writing the following article:
Legland, D.; Kiêu, K. & Devaux, M.-F. Computation of Minkowski measures on 2D and 3D binary images. Image Anal. Stereol., 2007, 26, 83-92,

Following reference can also be of interest:
Joachim Ohser and Frank Muecklich (2000) Statistical Analysis of Microstructures in Material Sciences, John Wiley and Sons.

Cite As

David Legland (2024). imMinkowski (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2020a
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

update management of label images;
rename imSurface to imSurfaceArea;
various code cleanup.

update dependencies, added imProjectedArea.m and imProjectedDiameter.m

Added support for computation of mean breadth density, and of look-up tables for several parameters. Default number of directions for computing surface area is 13, resulting in more accurate results.

improve management of label images: add psb to compute functionals only on specific labels, and enhance automatic detection of labels in image

fix some bugs in imPerimeterDensity and imSurface, add imJointSurface