Как убедиться, что сплайн проходит через точки

Я пытаюсь сделать сплайн для вычисления производной контур части изображения. Загвоздка в том, что я, похоже, не знаю, как заставить сплайн проходить через определенную точку. Я использую библиотеку scipy.interpolate с методом UnivariateSpline.


person Jake Fund    schedule 13.07.2015    source источник
comment
Пожалуйста, поделитесь своим кодом, а также   -  person therealprashant    schedule 13.07.2015
comment
У вас есть все, что вам нужно знать, включая пошаговые алгоритмы в Википедии en.m.wikipedia.org /wiki/Spline_interpolation   -  person Ander Biguri    schedule 13.07.2015
comment
Если вы не используете сглаживание, сплайн должен проходить через каждую точку, использованную для его построения.   -  person Jon Custer    schedule 13.07.2015
comment
Ах, действительно, хорошо. Я посмотрел это видео youtube.com/watch?v=OkncKzflw8I и оказалось, что кривая проходила не через все исходные точки, а только через первую и последнюю. Спасибо за помощь.   -  person Jake Fund    schedule 13.07.2015


Ответы (2)


Для UnivariateSpline используйте s=0 для принудительной интерполяции: UnivariateSpline(x, y, s=0). Или используйте InterpolatedUnivariateSpline, что точно эквивалентно.

person ev-br    schedule 13.07.2015

Я предполагаю, что ваш «контур» может быть произвольной кривой, не обязательно графиком функции. Тогда вам нужен splprep которые интерполируют параметрическую кривую B-сплайна, т.е. (x,y) = spline(t). UnivariateSpline предназначен только для функциональных сплайнов, т.е. y = spline(x).

person Jan Brezina    schedule 16.09.2017