I have a digital image from X-ray tomography as below:
There are three different ingredients/components to be segmented:
- the continuous phase, mastics;
- the discrete phase I, aggregates;
- the discrete phase II, voids
which are all visually legible though the contrast is low:
I tried several approaches for segmentation, and the currently best result is only like this:
1.voids:
img=Import["https://i.stack.imgur.com/9q5QX.png"];
cellEdges=GradientFilter[ImageAdjust[img], 2]//ImageAdjust//Binarize;
voids = Closing[cellEdges, 3]
2.aggregates and mastics,
agg01=ImageFilter[Mean[Flatten[#]]&,LocalAdaptiveBinarize[img, 15],2];
agg02=GeodesicOpening[agg01, 5];
agg03=GeodesicOpening[agg02, 5]
The obtained discrete phase
of aggregates looks continuous
especially on the edge of the circular region; aggregates should be isolated islands with no black dots expected on them, but the current segmentation does not seem to achieve this.
Such a segmentation differs significantly from its visual inspection. How can I improve it?