Спасибо, ребята.Я только что закончил писать свои собственные коды для интерполяции.Но моя идея от вас.Спасибо @asaflotz и @Paul Panzer.
Дело в моем сценарии, точки в облаке точек расположены неправильно.Интервалы между двумя соседними точками неодинаковы.Невозможно использовать сетку напрямую.Поэтому я выбрал неструктурированный метод в Scipy.Interpolate , который имеет так много практических методов, которые могут использоваться в зависимости от различных вариантов использования.Мой код ниже является модифицированной версией примера из Scipy.Interpolate.griddata .
x_range=((df.X.max()-df.X.min()))
y_range=((df.Y.max()-df.Y.min()))
grid_x, grid_y = np.mgrid[df.X.min():df.X.max():(x_range*1j), df.Y.min():df.Y.max():(y_range*1j)]
points = df[['X','Y']].values
values = df['new'].values
grid_z0 = griddata(points, values, (grid_x, grid_y), method='linear').astype(np.uint8)
im=Image.fromarray(grid_z0,'L')
im.show()
Заметил, что в griddata такие методы, как 'linear', 'near','cubic' может применяться в зависимости от ваших сценариев.Вот сгенерированное изображение высоты серого.
Наконец, мой вопрос в основном решен.Пожалуйста, прокомментируйте этот пост, если у вас есть хорошие идеи или путаница.Спасибо всем!
Роуэн