Graph Cut

QR for this page

From Fiji

Jump to: navigation, search
Graph Cut Plugin (Fiji)
Author Jan Funke
Maintainer Jan Funke
Source on git web
Initial release August 24th, 2010
Development status experimental
Category Segmentation


Mito-sample.png

General

The Graph Cut plugin provides a way to obtain a globally smooth binary segmentation. As input, you have to provide a gray-scale image that represents the pixel affinities for belonging to the foreground. Via a single parameter you can adjust the smoothness of the segmentation.

This plugin is based on a reimplementation of Kolmogorov's maxflow v3.01 library, which was written in C++. If you intend to use it for a publication, please cite:

Yuri Boykov and Vladimir Kolmogorov, An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Computer Vision., In IEEE Transactions on Pattern Analysis and Machine Intelligence, September 2004.

The plugin can be found under Plugins->Segmentation->Graph Cut.

Settings

The only available setting so far is the "smoothness" value. Use it to adjust the penalty for label changes in the segmentation. The higher this value, the less label changes you will have, thus the segmentation gets smoother. A value of zero corresponds to thresholding the input image.

Tutorial

Assume we want to segment the following image into foreground/background, such that the foreground is the mitochondria and the background everything else:

Mito.png

Probability Image

First, we create a probability image that reflects the per-pixel probability of belonging to the foreground. For that, we can use the experimental Advanced Weka Segmentation plugin. We train a classifier for the mitochondria and everything else. Instead of using the classifier directly for the segmentation, however, we create a probability image:

Mito-prob.png

Running Graph Cut

Now we start the Graph Cut plugin on the probability image. With the "smoothness" slider we can adjust the smoothness of the segmentation to avoid some small extrema to corrupt our segmentation. In our example, we found that a value of about 600 gives reasonable results. The outcome of the plugin is a binary image, with white being the foreground segmentation:

Mito-seg.png

Result

Finally, we merge the original image and the segmentation for illustration purposes:

Mito-comp.png