Analysis, filtering, combining, and segmentation of 3D images

The programs in this section are dedicated to basic 3D image processing tasks, like filtering by invoking plug-ins (Plugin type: 3dimage/filter), combining pairs of images (Plugin type: 3dimage/combiner), creating test images (Plugin type: 3dimage/creator), and evaluating some statistics.


This program is used to combine two binary images by some kind of operation.


This program is used to extract the brain from T1 MR images. It first runs a combined fuzzy c-means clustering and B-field correction to facilitate a 3D segmentation of 3D image. Then various fiters are run to obtain a white matter segmentation as initial mask that is then used to run a region growing to obtain a mask of the whole brain. Finally, this mask is used to extact the brain from the B0 field corrected images.


This programs takes various input images of the same dimensions and creates a combined output images that uses the define operation for the combination.


This programs takes various segmentation masks of the same data and a tissue probability image set and combines them into one labeled image. The masks are translated to labels according to the position on the command line. If a voxel is set as belonging to more then one mask, the probabilities are consulted.


This program creates a label image from a fuzzy segmentation. or each pixel the label is set to the class with the higest probability plus a given offset


This program is used to evaluate the distance between equally labelled areas in two images. The output file is a csv file containing the distances for each labeled coordinate in the test image in the following form: label,n-samples,distance,distance,... A simple R program to get some per label statistics from this data would look like args <- commandArgs(TRUE) data <- read.csv(args[1], header=FALSE) for ( i in 1:dim(data)[1] ) { line <- data[i,] label <- as.integer(line[1]) end_range <- 2 + as.numeric(line[2]) s <- as.numeric(line[3:end_range]) result <- sprintf("%d %8.4f %8.4f %8.4f %8.4f\n" label, mean(s), sqrt(var(s)), median(s), max(s)) cat(result) }


This program runs a combined fuzzy c-means clustering and B-field correction to facilitate a 3D segmentation of 3D image


Write the dimensions of the input 3D image to stdout.


This program is used to combine two images using a given image combiner.


This program creates a 3D image that contains an object created by one of the object creator plug-ins (creator/3dimage)


This program is used to filter and convert gray scale 3D images.


This program is used to filter and convert a consecutive numbered series gray of scale images. File names must follow the pattern 'dataXXXX.v' (X being digits), i.e. the numbering comes right before the dot.


This program evaluates the statistics of an image within a masked region of the image. Possible outputs are a summary statistics and a histogram of the values.


This program is used to evaluate certain image statistics and print them out on the console.


This program is used to extract an iso-surface from the input gray scale image given as slices.


merge two images by linear combination.


3D image segmentation based on region growing from a seed point. Neighboring points are added, either when their intensity is equal or higher than that of the seed point, or of the intensity is lower or equal then that of the neighoring point. After region growing is finished, this mask is used to zero out the region in the original image yielding the resulting image.


This program evaluates a box that contains all the pixels of a given mask image. If the input image is not a binary image, a pre-filter must be applied that converts the imput image into a mask.


This program implements a variation of the paper:Mohamed N. Ahmed et. al, "A Modified Fuzzy C-Means Algorithm for Bias Field estimation and Segmentation of MRI Data", IEEE Trans. on Medical Imaging, Vol. 21, No. 3, March 2002, changes are: p=2, and exp


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.