Я ищу метод в Python для определения точки максимальной кривизны вдоль кривой, которая отслеживает периметр многоугольника.
Некоторые предыстории: я разрабатываю метод для нахождения средних линий двоичных масокморковные корни.Я использую диаграммы Вороного, которые в большинстве случаев работают хорошо, но иногда то, что я бы визуально считал «вершиной» маски, не связано с самым длинным путем графа Вороного, и я получаю нежелательные результаты.Например:


Фактически график «преждевременно» соединяется с точкойвдоль контура двоичной маски, которая составляет самый длинный путь, но явно не соответствует тому, что я бы назвал «средней линией».Я думаю, что я могу решить эту проблему, обрезав граф Вороного до точки, где он начинает производить несколько шпор, а затем просто соединить это с истинным «кончиком» моркови.
Я думаю, что это «tip ”должна быть точкой максимальной кривизны, если предположить, что я достаточно сглаживаю маски, чтобы устранить небольшие боковые ветви.
Кто-нибудь знает, как реализовать эффективный метод в Python для сканирования по периметру этих произвольных многоугольников?, а найти точку максимальной кривизны?