Создание 3D контура из изображения с использованием экстента с помощью Matplotlib

Как я представляюВот (в 2D), яМне интересно, если бы я могмасштаб" входное изображение должно быть нанесено на диапазон в графике. Чтобы быть более понятным, это то, что мне нужно:

У меня есть изображение 400 * 400, которое генерируется на основе функции с интервалом -1.1. Итак, я делаю перевод, чтобы сохранить эти данные, например:

x = Utils.translate(pos_x, 0, self.width, -1, 1)
y = Utils.translate(pos_y, 0, self.height, -1, 1)
data = Utils.map_position_to_function(x, y)

Т.е. сначала я сопоставляю его положение с моим диапазоном, а затем вычисляю de f (x, y) на основании этого "Новая позиция" и сохранить данные. Кроме того, когда я сохраняю это изображение, я выполняю перевод данных, чтобы он умещался в диапазоне 0,255, создавая изображение в градациях серого.

Проблема в том, что позже я должен представить контур изображения в диапазоне функций. Итак, у меня есть изображение 400 * 400, которое я должен представить на графике с диапазоном -1.1.

В 2D я мог бы сделать это с помощью этого кода:

im = plt.array(Image.open('Mean.png').convert('L'))
plt.figure()
CS = plt.contour(im, origin='image', extent=[-1, 1, -1, 1])
plt.clabel(CS, inline=1, fontsize=10)
plt.savefig("CountorLevel2D.png")

В 3D я попробовал это:

fig = plt.figure()
ax = fig.gca(projection='3d')
row = np.linspace(0, 400, 400)
X,Y = np.meshgrid(row,row)
CS = ax.contour(X, Y, im, cmap=cm.coolwarm, extent=[-1, 1, -1, 1])
plt.clabel(CS, inline=1, fontsize=10)
plt.savefig("ContourLevel3D.png")

Но X и Y все еще находятся в диапазоне 0..400. Я неЯ не знаю, что не так, или что я должен сделать, чтобы X и Y были в диапазоне -1..1. Кроме того, ярлык не отображается.

Также какя это изображение, я читаю значения, которые находятся в диапазоне от 0,2555 значений. Как я мог представить это в диапазоне -1.1?

Заранее спасибо. (:

Ответы на вопрос(1)

Ваш ответ на вопрос