сгладить путь линии с питоном - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть набор точек, все вместе они создают трек, где последовательность имеет решающее значение.Я могу построить дорожку, используя линии, как я могу сгладить ее после или во время выборки новых точек?Трек может выглядеть следующим образом: 1 фотография:

Изображение первое Picture One

Изображение два Picture Two

Изображение три Picture Three

2 - это то, что я хочу получить в конце.Я попытался интерполировать с scipy.interpolate, но это не сработало, потому что для этого требуется отсортированная последовательность (в конце я достиг только pic3)

1 Ответ

0 голосов
/ 16 ноября 2018

Похоже, что другой метод интерполяции или подход может получить то, что вы хотите. Кубический сплайн даст вам более прямые линии с кривыми в вершинах, как это используется из scipy libary и этого примера набора точек петли:

import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate

arr = np.array([[0,0],[2,.5],[2.5, 1.25],[2.6,2.8],[1.3,1.1]])
x, y = zip(*arr)
#in this specific instance, append an endpoint to the starting point to create a closed shape
x = np.r_[x, x[0]]
y = np.r_[y, y[0]]
#create spline function
f, u = interpolate.splprep([x, y], s=0, per=True)
#create interpolated lists of points
xint, yint = interpolate.splev(np.linspace(0, 1, 100), f)
plt.scatter(x, y)
plt.plot(xint, yint)
plt.show()

enter image description here

И оригинальная прямая линия будет выглядеть так:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...