I tested ClusteringComponents
with the examples provided in the Documentation Center (http://reference.wolfram.com/mathematica/ref/ClusteringComponents.html) of Mathematica
. In Options > DistanceFunction there is an example provided how to use your own DistanceFunction
in ClusteringComponents
:
ClusteringComponents[{{1, 2}, 3, {10, 11}, {12, {13}}, 14}, 2, 1,
DistanceFunction -> (Abs[Length[#1] - Length[#2]] &)]
I tried to apply this to an image without any success. I only ended up with some very strange looking error messages. After a few more tests I found the following solution. First of all, ClusteringComponents
seems to work with a selfmade DistanceFunction
only if you provide it with ImageData
of a grayscale image. The following approach works:
Colorize@ClusteringComponents[ImageData[ColorConvert[img, "GrayScale"]], 3,
DistanceFunction -> (Norm[#1 - #2] &)]

ClusteringComponents[]
doesn't seem to accept a customDistanceFunction
. Just those listed in the help $\endgroup$