У меня есть набор точек, которые аппроксимируют двумерную кривую. Я хотел бы использовать Python с numpy и scipy, чтобы найти кубический маршрут Bézier, который приблизительно соответствует точкам, где я указываю точные координаты двух конечных точек и возвращает координаты двух других контрольных точек.
Первоначально я думал, что scipy.interpolate.splprep()
может делать то, что я хочу, но, похоже, заставляет кривую проходить через каждую из точек данных (как я полагаю, вы хотели бы использовать для интерполяции). Я предполагаю, что с этим я ошибся.
Мой вопрос аналогичен этому: как я могу подогнать кривую Безье к набору данных? , за исключением того, что они сказали, что не хотят использовать numpy. Мое предпочтение было бы найти то, что мне нужно, уже реализовано где-то в scipy или numpy. В противном случае я планирую реализовать алгоритм, связанный с одним из ответов на этот вопрос, используя numpy: Алгоритм автоматического подбора оцифрованных кривых (pdf.page 622).
Спасибо за любые предложения!
Изменение: я понимаю, что кубическая кривая Безье не будет проходить через все точки; Я хочу один, который проходит через две заданные конечные точки и как можно ближе к указанным внутренним точкам.