Code covered by the BSD License  

Highlights from
Geometric measures in 2D/3D images

5.0

5.0 | 3 ratings Rate this file 89 Downloads (last 30 days) File Size: 85.8 KB File ID: #33690

Geometric measures in 2D/3D images

by

 

09 Nov 2011 (Updated )

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

| Watch this File

File Information
Description

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 image resolution in each direction. 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 =
      2.7291e+004

Required Products Image Processing Toolbox
MATLAB release MATLAB 7.9 (R2009b)
Other requirements Can be used without image processing toolbox with slight modifications of sources (it is only used to accelerate processing of label images).
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (9)
10 Sep 2014 David Legland

@Hamed:
It will be difficult for me to answer your question... I think you should ask your question in more appropriate location, such as Matlab Answers, StackOverflow.com, or similar forums.

10 Sep 2014 David Legland

Hi Mike,
you can have a look at the paper for which I wrote this contribution:
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, http://www.ias-iss.org/ojs/IAS/article/view/811
(there is free access to pdf).

You can also find resources in the book "Statistical Analysis of microstructures in Material Sciences", by J Ohser and F. Muecklich (they provide some C code too).
regards,
David

09 Sep 2014 hamed

I have a problem.Any body can help me please?!
I have a series of images of a blood clot in the coronary artery angiography .(These photos are from different angles and different thicknesses of clot) .I want process these two-dimensional images to estimate the VOLUME of the clot anymore. please help me!
thank you so much....

Any idea?
please help.
hamed_eisaie@yahoo.com

05 Sep 2014 Mike

Hello, I am using your method "imMeanBreadth" for a school project, but I need to know the formula. Can you please also provide your reference?
Thank you!

05 Mar 2014 David Legland

Hi Sara,
For 3D objects you can compute surface area or volume using following code:
surf = imSurface(BIN); vol = imVolume(BIN);
(assuming BIN is a logical array containing the binarisation of the structure).

You can specify resolution as a 1-by-3 row vector containing size of voxel in x, y and z directions. Ex:
surf = imSurface(BIN, [2.5 2.5 5.2]);

04 Mar 2014 sara

hi , may you give the complite code for measuring 3D size of the object located in calibrated space please ? any one

please help me

12 Mar 2012 Ashok Kumar Pant

It helps me for feature Extraction from Handwritten Characters. Thank you Devid.

25 Nov 2011 David Legland

Hi Sven,
I have a code for computing inertia ellipsoid of a set of points. I can adapt it easily to compute inertia ellipsoid of a binary image. I try to package it and submit it soon !

23 Nov 2011 Sven

Hi David, the ability to specify image resolution is a big plus. Nice work. One thing that I find is that I wish the regular IP "Orientation" and "Majory/MinorAxis" statistics could be implemented for 3D. For instance, from a 3D mask I generally want to know "is this a long thin blob or a more rounded blob". Basically, the moments of inertia of the blob would be hugely helpful. Any plans to implement this?

Updates
11 Sep 2014

fix some bugs in imPerimeterDensity and imSurface, add imJointSurface

Contact us