Ich mache ein paar Spurerkennung als ein lustiges Projekt und ich versuche, einen kubischen Spline zu erstellen, um die Spur darzustellen. Wenn ich jedoch die scipy CubicSpline-Funktion verwende, bekomme ich einige absurd große Werte.scipy kubischer Spline mit sehr großen y-Werten
Hier ist mein Code:
from scipy import interpolate
from scipy.interpolate import CubicSpline
from scipy.interpolate import InterpolatedUnivariateSpline
from scipy.interpolate import interp1d
rows = img_size[0] # width
height = left_lane.shape[0]
y_values = [0, height/2, height]
plt.figure()
plt.imshow(left_lane, cmap='gray')
splines = []
particle = particles[0]
cx = [particle[0], particle[1], particle[2]]
cy = [y_values[0], y_values[1], y_values[2]]
points = zip(cx, cy)
points = sorted(points, key=lambda point: point[0])
x1, y1 = zip(*points)
x1 = np.asarray(x1)
y1 = np.asarray(y1)
s = CubicSpline(x1, y1)
new_x = np.arange(min(x1), max(x1), 0.1)
new_y = s(new_x)
plt.plot(new_x, new_y)
plt.show()
Hier ist der Ausgang:
Hier ist das Originalbild mit den Kontrollpunkten aufgetragen:
Ich verstehe nicht warum der Spline-Algorithmus mir so große Werte für solch einen einfachen Spline gibt. Also, was ist das Problem hier? Schlechte Werte? Falsche Verwendung von kubischem Spline?
Vielen Dank für die Hilfe!