JuliaImages / ImageSegmentation.jl

Partitioning images into meaningful regions
Other
47 stars 23 forks source link

Documentation missing for fuzzy cmeans #24

Closed AndreiUlmeyda closed 5 years ago

AndreiUlmeyda commented 6 years ago

Hi there,

[Too long, will not read: The part of the documentation concerning fuzzy cmeans segmentation is hard to understand and from the function reference it is entirely missing. Making the output of the function consistent with all the other segmentation methods would remove a lot of those problems.]

I have tried to understand and use the fuzzy cmeans segmentation method provided by this package. While all other segmentation methods are more or less straight forward to use, the explainations for fuzzy cmeans seem a bit tacked on.

Having applied the funtion I got out an unsppecified data structure which I needed to inspect with fieldnames(result). The documentation mentions only that it is different from the ones supplied by all other methods and not what it is.

Next stop was the funtion reference from which fuzzy means is entirely missing.

Which leaves the sentence "Output with pixel intensity = cluster center intensity * membership of pixel in that class" as the most promising, yet moderately cryptic source of information. I have got vague ideas about what represents what but it is still sufficiently unclear to have me stumble around for an hour. Do the rows/columns in centers correspond to the labels, color channels or are they upper and lower bounds of some value? Does the term "output" in the cryptic sentence refer to the funtion output or a recontructed map of the segments. Is the word "class" in that sentence synonymous with segment label? And so on.

The method segment_labels works on the datastructure, returning 2 labels in my case. Yet the function labels_map fails, bummer.

I would greatly appreciate if the function reference and or the documentation examples were updated with clear references to the field names and structure of the result as well as example code like in all the other examples. Additionally, the function output could be changed to conform with all the other methods.

Best regards, Adrian

timholy commented 5 years ago

Thanks for the report, sorry this came at a time when I wasn't paying attention to GitHub.

The reason fuzzy_cmeans feels "tacked on" is because it is: the code for it in this package is just 2 lines. kmeans is similar, in that it just calls the code in Clustering.jl (after separating the color channels).

The right place for this documentation is in Clustering.jl, which badly needs documentation updates. However, I'll expand the docs over at JuliaImages a bit.