Распознавание контуров 2D фигур
Я ищу, чтобы реализовать распознавание формы / сопоставление аналогичных кривых (дискретные точечные массивы) в 2D.
Я нашел статью на эту тему, но я немного растерялся, когда дело доходит до реализации этого в коде.
Я понял, что эту функцию нужно свернуть:
Но с чего мне начать?
- Кажется, μ - это измерение искажения, которое я хочу минимизировать.
- ψ кажется некоторым аргументом, который ограничен от 0 до π / 2
- "R - это параметр", что означает?
- κ это кривизна,?
- ξ - еще один параметр...
- gahhh
Кто-нибудь может, пожалуйста, наметить подход к этому на английском языке? А может быть, в каком-то псевдокоде?
2 ответа
Я думаю, что маловероятно, что вы сможете заставить это работать без понимания математики, и способ понять математику - это проработать статью с самого начала; если вы переходите к последнему уравнению и пытаетесь его закодировать, естественно, это не имеет смысла. Вот ответы на ваши конкретные вопросы, для чего они стоят:
- μ действительно является "измерением искажения" или стоимостью деформации одной кривой в другую.
- indeed действительно ограничено [0 и π/2]. Это угол кривой (h,h-bar) (извините, я не знаю, как вводить специальные символы).
- "R - это параметр", что означает, что он произвольный, мера того, насколько важна ориентация относительно перемещения.
- κ - кривизна, C - первая кривая.
- ξ - параметр, описывающий продвижение по обеим кривым. По мере продвижения ξ от 0 до L-тильды h(ξ) переходит от 0 до L, а h-bar(ξ) - от 0 до L-bar.
Мы начнем с некоторых определений:
- Кривизна - это то, насколько кривая отклоняется от плоской.
- Параметр определяет, какую кривую вы ищете. Например, f(x) = kx + m, k и m - параметры.
Что касается минимизации, вы можете посмотреть здесь: http://en.wikipedia.org/wiki/Calculus_of_variations