---
name: "mia-3dsegment-local-cmeans"
section: "1"
platform: "linux"
package: "mia-tools"
version: "2.4.7-11+b1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/mia-3dsegment-local-cmeans"
---

# mia-3dsegment-local-cmeans(1)

Run a c-means segmentation of a 3D image.

## NAME

mia-3dsegment-local-cmeans - Run a c-means segmentation of a 3D image.

## SYNOPSIS

**mia-3dsegment-local-cmeans -i \<in-file\> \[options\]**

## DESCRIPTION

**mia-3dsegment-local-cmeans** This program runs the segmentation of a 3D image by applying a localized c-means approach that helps to overcome intensity inhomogeneities in the image. The approach evaluates a global c-means clustering, and then separates the image into overlapping regions where more c-means iterations are run only including the locally present classes, i.e. the classes that relatively contain more pixels than a given threshold. This program implements algorithm described in:

Dunmore CJ, Wollny G, Skinner MM. (2018) MIA-Clustering: a novel method for segmentation of paleontological material. PeerJ 6:e4374. ⟨https://doi.org/10.7717/peerj.4374⟩

## OPTIONS

### File-IO

- \-i --in-file=(required, input); io

  image to be segmented\
    For supported file types see PLUGINS:3dimage/io

- \-o --out-file=(output); io

  class label image based on merging local labels\
    For supported file types see PLUGINS:3dimage/io

- \-G --out-global-crisp=(output); io

  class label image based on global segmentation\
    For supported file types see PLUGINS:3dimage/io

- \-C --class-prob=(output); io

  class probability image file, filetype must support floating point multi-frame images\
    For supported file types see PLUGINS:3dimage/io

### Help & Info

- \-V --verbose=warning

  verbosity of output, print messages of given level and higher priorities. Supported priorities starting at lowest level are:

  *trace* ‐ Function call trace

  *debug* ‐ Debug output

  *info* ‐ Low level messages

  *message* ‐ Normal messages

  *warning* ‐ Warnings

  *fail* ‐ Report test failures

  *error* ‐ Report errors

  *fatal* ‐ Report only fatal errors

- \--copyright

  print copyright information

- \-h --help

  print this help

- \-? --usage

  print a short help

- \--version

  print the version number and exit

### Parameters

- \-g --grid-spacing=15; int in \[3, inf)

  Spacing of the grid used to modulate the intensity inhomogeneities

- \-c --cmeans=kmeans:nc=3

  c-means initializer\
    For supported plugins see PLUGINS:1d/cmeans

- \-e --c-means-epsilon=0.0001; float in (0, inf)

  c-means breaking condition for update tolerance

- \-t --relative-cluster-threshold=0.02; double in \[0, 1)

  threshhold to ignore classes when initializing the local cmeans from the global one.

- \-B --ignore-background

  Don't take background probablities into account when desiding whether classes are to be ignored

- \-L --label-threshold=0; float in \[0, 1\]

  for values \<= 0.5: create segmentation based on highest class probability, labels start at 0. For values \>0.5: create labels only for voxels with a class probability higher than the given value, labels start at 1 and voxels without an according class probability are set to 0; this output is suitable for the seeded watershed filter.

### Processing

- \--threads=-1

  Maxiumum number of threads to use for processing,This number should be lower or equal to the number of logical processor cores in the machine. (-1: automatic estimation).

## PLUGINS: 1d/cmeans

- **even**

  C-Means initializer that sets the initial class centers as evenly distributed over \[0,1\], supported parameters are:

*nc* =(required, ulong)

Number of classes to use for the fuzzy-cmeans classification.

- **kmeans**

  C-Means initializer that sets the initial class centers by using a k-means classification, supported parameters are:

*nc* =(required, ulong)

Number of classes to use for the fuzzy-cmeans classification.

- **predefined**

  C-Means initializer that sets pre-defined values for the initial class centers, supported parameters are:

*cc* =(required, vdouble)

Initial class centers fuzzy-cmeans classification (normalized to range \[0,1\]).

## PLUGINS: 3dimage/io

- **analyze**

  Analyze 7.5 image

Recognized file extensions:  .HDR, .hdr

Supported element types:

unsigned 8 bit, signed 16 bit, signed 32 bit, floating point 32 bit, floating point 64 bit

- **datapool**

  Virtual IO to and from the internal data pool

Recognized file extensions:  .@

- **dicom**

  Dicom image series as 3D

Recognized file extensions:  .DCM, .dcm

Supported element types:

signed 16 bit, unsigned 16 bit

- **hdf5**

  HDF5 3D image IO

Recognized file extensions:  .H5, .h5

Supported element types:

binary data, signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, signed 64 bit, unsigned 64 bit, floating point 32 bit, floating point 64 bit

- **inria**

  INRIA image

Recognized file extensions:  .INR, .inr

Supported element types:

signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, floating point 32 bit, floating point 64 bit

- **mhd**

  MetaIO 3D image IO using the VTK implementation (experimental).

Recognized file extensions:  .MHA, .MHD, .mha, .mhd

Supported element types:

signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, floating point 32 bit, floating point 64 bit

- **nifti**

  NIFTI-1 3D image IO. The orientation is transformed in the same way like it is done with 'dicomtonifti --no-reorder' from the vtk-dicom package.

Recognized file extensions:  .NII, .nii

Supported element types:

signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, signed 64 bit, unsigned 64 bit, floating point 32 bit, floating point 64 bit

- **vff**

  VFF Sun raster format

Recognized file extensions:  .VFF, .vff

Supported element types:

unsigned 8 bit, signed 16 bit

- **vista**

  Vista 3D

Recognized file extensions:  .-, .V, .VISTA, .v, .vista

Supported element types:

binary data, signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, floating point 32 bit, floating point 64 bit

- **vti**

  3D image VTK-XML in- and output (experimental).

Recognized file extensions:  .VTI, .vti

Supported element types:

signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, floating point 32 bit, floating point 64 bit

- **vtk**

  3D VTK image legacy in- and output (experimental).

Recognized file extensions:  .VTK, .VTKIMAGE, .vtk, .vtkimage

Supported element types:

signed 8 bit, unsigned 8 bit, signed 16 bit, unsigned 16 bit, signed 32 bit, unsigned 32 bit, floating point 32 bit, floating point 64 bit

## EXAMPLE

Run the segmentation on image test.png using three classes, local regions of 40 pixels (grid width 20 pixels), and a class ignore threshold of 0.01.

mia-3dsegment-local-cmeans -i test.png -o label.png -n 3 -g 20 -t 0.01

## AUTHOR(s)

Gert Wollny

## COPYRIGHT

This software is Copyright (c) 1999‐2015 Leipzig, Germany and Madrid, Spain. It comes  with  ABSOLUTELY  NO WARRANTY  and  you  may redistribute it under the terms of the GNU  GENERAL PUBLIC LICENSE Version 3 (or later). For more  information run the program with the option '--copyright'.
