На изображении, показанном ниже, у меня есть набор двумерных данных, где я идентифицировал четыре кластера, помеченных [0,1,2,3]
. Я ищу алгоритм для размещения меток естественным * способом для каждой фигуры. Моим первым предположением было разместить их в «центре масс» скопления, как показано ниже. Для смежных кластеров это работает нормально. Однако для кластеров, которые принимают форму, как в кластере 0
, этот подход терпит неудачу. Без использования легенды, что было бы лучшим способом разместить метки на этом изображении?
* естественное здесь в некоторой степени субъективно, но смысл меток состоит в том, чтобы помочь зрителю связать определенную область в плоскости xy с числом.
image-processing
edge-detection
Увлеченные
источник
источник
Ответы:
Как насчет размещения этикетки в самой внутренней точке сегмента? Определим самое внутреннее по максимуму трансформации расстояния маски сегмента.
С программными системами, такими как Mathematica и тому подобное, это легко сделать.
Маска для одного сегмента и его преобразование расстояния:
После повторения для каждого сегмента и позиционирования метки, где отдельные трансформации расстояния максимальны:
источник
Я утверждаю, что идеальное место для размещения этикетки должно соответствовать двум целям:
Остальное численная оптимизация.
источник