The plug-in is developed using a segmentation algorithm based on the Potts model. The user can segment an image, merge two segments or refine segments from an already existing partition. These functions can be done either using the initial image or a smaller version, creating a preview version of the final result, with less computational cost and faster results. Finally, the results are visualised in various forms.
Implemented by Vasileios Angelopoulos at the Biomedical Imaging Group (BIG), EPFL, Switzerland.
Based on the Toolbox Pottslab develop by M. Storath and A. Weinmann.
The plug-in is developed using a segmentation algorithm based on the Potts model. It allows 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 the 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, to provide the best possible illustration according to each user’s needs.
The plugin is also compatible with the Protocols environment and can be used in block mode for the segmentation feature.
Based on the Toolbox Pottslab develop by Martin Storath and Andreas Weinmann.
The current version of the plugin requires Java version 8 update 60 or newer and Icy version 220.127.116.11 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.
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 extracts 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
Functions and Results
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 the 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.
Users 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, wherein Figure 6 is the initial image and in Figure 7 we have the 50% preview of its segmentation.
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 8, 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 the merging and we have the result presented in Figure 9.
This function gives the opportunity of refinement of one or more segments, aiming in results that are closer to each user’s needs. The 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 segment is 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 10 and 11 show the results for such a process if we use 10% of the initial value of γ for the refinement.
 M. Storath and A. Weinmann, Fast partitioning of vector-valued images, SIAM J. Imaging Sciences, 7(3):1826-1852, 2014.
 M. Storath, A. Weinmann, J. Frikel, M. Unser. Joint image reconstruction and segmentation using the Potts model. Inverse Problems, 31(2):025003, 2015.
 R.M. Haralick and L.G. Shapiro, Image segmentation techniques, Computer Vision Graph. Image Processing, 29:100-132, 1985.
 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.
I would like to thank Martin Storath, Iris Friedli, Daniel Sage and Michael Unser for the valuable discussions and suggestions.