Associated publications
If you use this plugin, please cite it in your publication !
User reviews
25 Oct 2016 01:14
11 Nov 2015 14:16
Potts Segmentation
by Vasileios AngelopoulosImplemented by Vasileios Angelopoulos at the Biomedical Imaging Group (BIG), EPFL, Switzerland.
Based on the Toolbox Pottslab develop by M. Storath and A. Weinmann.
ICY-O8D5B1
Documentation
The plug-in is developed using a segmentation algorithm based on the Potts model [1]. It gives the opportunity to the user to segment an image, merge two different segments or refine segments from an already existing partition. All of these functions can be done either using the initial image or a smaller version, which is a percentage in size of the initial one. The latter creates a preview version of the final result, with less computational cost and faster results. Finally, the results after the operations are given in three different forms of representation, in order to provide the best possible illustration according to each user needs.
Implemented by Vasileios Angelopoulos at the Biomedical Imaging Group (BIG), EPFL, Switzerland.
Based on the Toolbox Pottslab develop by Martin Storath and Andreas Weinmann.
Requirements
The current version of the plugin requires Java version 8 update 60 or newer and Icy version 1.6.1.1 or newer. In case that you get a message during your attempt to install the plugin or during the execution of some of its functions, there is a large probability that you need to update the Java or Icy versions at your machine.
Demo
Interface
The interface of the plugin is presented in Figure 1. There we can see the following functions and settings: 
1. set the value for scale parameter γ
2. checkbox to make use of "Advanced mode" parameters setting
3. set the initial value for parameter μ
4. set the step value for parameter μ
5. checkbox to make use of the near isotropic model approach
6. choose the size for the output image as a percentage of the initial one
7. button that performs segmentation for the image at the size that was set above
8. button that is used for merging two or more adjacent segments that were chosen by the user
9. choose the level of refinement by setting a new γ value as a percentage of the one that is set at (1)
10. button that performs refinement of a certain segment with γ from (9)
11. button that extract the marked segment(s) into separate ROI(s)
12. checkbox to open resulting images after merging or refinement in a new window
13. button that browses the user to the online documentation of the plugin
14. bar that shows the current status of the requested process
Figure 1
Functions and Results
Segment
This is the main function of the application, where an image is segmented using the core segmentation algorithm. The user can set the value of the parameter γ of the algorithm, which specifies the sensitivity of the segmentation process to the jumps occurred in the image. As larger is the γ, so the number of the large segments at the results is smaller. Furthermore, there is the choice of the “Advanced mode”, where user can set the values of more parameters of the core algorithm.
Figures 2 to 5 show the results of the segmentation process. In Figure 2 we can see the initial image before any processing, in Figure 3 we have the image segmentation, in Figure 4 the boundaries of the latter and, finally, in Figure 5 a representation of the result using HSV to RGB transformation.

Figure 2

Figure 3

Figure 4

Figure 5
Preview result
User can preview the final result of the segmentation function by choosing the size of the preview image as a percentage of the initial one. This offers significant computational savings and faster processing, without leading to results that are far from the corresponding using the initial image in full size. Below we can see an example, where in Figure 6 is the initial image, in Figure 7 we have the 50% preview of its segmentation and in Figure 8 the 25% preview.
Figure 6

Figure 7
Figure 8
Merge
Using this operation we can merge segments that have been created using a segmentation process, so that we will generate a new bigger segment that will include the areas of the image that belonged to the initial segments before. As we can observe in Figure 9, the only thing that we need to do is to set the segments that we want to merge, using the ROI tool of the platform. Then, we apply merging and we have the result presented in Figure 10.

Figure 9

Figure 10
Refine
This function gives the opportunity of refinement of one or more segments, aiming in results that are closer to each user needs. User marks the regions for refinement, where the selected ROI has to be located clearly inside a single segment. In case that more than one segments are planned to be refined, each one has to be marked with a separate ROI. Then, the algorithm is applied again only for the requested segments performing a more “strict” segmentation. This happens using a new value for the γ parameter that is chosen by the user as a percentage of the initial one, which is placed at the top of the interface. Figures 11 and 12 show the results for such a process, if we use the 10% of the initial value of γ for the refinement.

Figure 11

Figure 12
References
[1] M. Storath and A. Weinmann, Fast partitioning of vector-valued images, SIAM J. Imaging Sciences, 7(3):1826-1852, 2014.
[2] M. Storath, A. Weinmann, J. Frikel, M. Unser. Joint image reconstruction and segmentation using the Potts model. Inverse Problems, 31(2):025003, 2015.
[3] R.M. Haralick and L.G. Shapiro, Image segmentation techniques, Computer Vision Graph. Image Processing, 29:100-132, 1985.
[4] S. Geman and D. Geman, Stochastic relaxation, Gibbs distributions and the Bayesian restoration of images, IEEE Trans. Pattern Anal. Machine Intell., 6:721-741, 1984.
Acknowledgments
I would like to thank Martin Storath, Iris Friedli, Daniel Sage and Michael Unser for the valuable discussions and suggestions.
