У меня есть массив numpy, изображающий кривую шириной в один пиксель, дискретную, связанную. Эта кривая получается с помощью операции Скелетирование обработки изображения. Я пытаюсь найти кривизну приведенной выше кривой в произвольной точке, чтобы обнаружить изгибы/перегибы (которые будут иметь большое значение кривизны).
Я попытался реализовать это, используя общую формулу кривизны. Однако, поскольку это пиксельная дискретная кривая, функция генерации которой неизвестна, я попытался вместо этого прибегнуть к использованию numpy gradient
.
Проблема, которую я вижу в приведенном выше, заключается в том, что, поскольку кривая имеет ширину в один пиксель, в любой точке наклон может быть только одним из 0, 1 или бесконечностьюсильный>. В результате значения кривизны, которые я получаю, в основном бессмысленны или бесполезны.
Я ищу какое-нибудь предложение о том, с чего начать, чтобы получить гладкую кривую из вышеперечисленного, чтобы я мог вычислить кривизну более осмысленным способом. Может ли кто-нибудь предложить какую-либо математическую операцию или свертку, которую я могу применить для достижения того же? Ниже представлено репрезентативное бинарное изображение, которое у меня есть.
P.S. Я очень-очень новичок в обработке изображений, поэтому ссылки на стандартные алгоритмы (в учебниках по математике) или библиотечные реализации были бы очень полезны.