Plote o contorno 3D de uma imagem usando a extensão com Matplotlib

Como eu apresentoAqui (em 2D), eu estou querendo saber como eu poderia "escalar" uma entrada de imagem para ser plotada em um intervalo na plotagem. Para ser mais claro, é disso que eu preciso:

Eu tenho uma imagem 400 * 400 que é gerada com base em uma função cujo intervalo é -1..1. Então, eu faço uma tradução para salvar esses dados, assim:

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)

Ou seja, primeiro mapeio sua posição para o meu intervalo e então eu calculo de f (x, y) com base nessa "nova posição" e salvo os dados. Além disso, ao salvar esta imagem, faço uma conversão em dados para que ela se ajuste em um intervalo de 0,255, gerando uma imagem em tons de cinza.

O problema é que, mais tarde, tenho que representar o contorno da imagem no intervalo de funções. Então, eu tenho uma imagem, 400 * 400, que eu tenho que representar em um gráfico cujo alcance é -1..1.

Em 2D, eu poderia fazer isso com este código:

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")

Em 3D, eu tentei isso:

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")

Mas o X e o Y ainda estão no intervalo de 0,400. Eu não sei o que está errado, ou o que eu tenho que fazer para ter X e Y na faixa de -1.1. Além disso, nenhum rótulo é exibido.

Tambem comoEu estou é uma imagem, eu li valores que varia entre 0,255 valores. Como eu poderia apresentar isso em uma faixa de -1.1 também?

Desde já, obrigado. (:

questionAnswers(1)

yourAnswerToTheQuestion