我想知道是否可以“缩放”要绘制到绘图范围内的图像输入。更清楚地说,这就是我需要的:
我有一个 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) 并保存数据。
问题是,稍后,我必须在函数范围内表示图像轮廓。所以,我有一个图像,400 * 400,我必须在一个范围为 -1..1 的图中表示。
这很好用:
import pylab as plt
im = plt.array(Image.open('Mean.png').convert('L'))
plt.figure()
plt.contour(im, origin='image')
plt.axis('equal')
但我找不到让 x/y 轴在 -1..1 范围内的方法
我试过这个:
row = np.linspace(-1,1,0.25)
X,Y = np.meshgrid(row,row)
Z = plt.array(Image.open('Mean.png').convert('L'))
plt.contour(X,Y,Z)
但它不起作用,不起作用是有道理的,但我不知道我怎么能做我想做的事。我有关于这张图片中数据的信息,所以我也尝试做类似这两种方法的事情:
# 1
plt.figure()
row = np.linspace(-1,1,0.25)
X,Y = np.meshgrid(row,row)
Z = ImageMedia[Utils.translate(X, 400, 400, -1, 1), Utils.translate(Y, 400, 400, -1, 1)]
plt.contour(X,Y,Z)
# 2
im = plt.array(Image.open('Mean.png').convert('L'))
plt.figure()
plt.contour(im, origin='image')
v = [-1, 1, -1, 1]
plt.axis(v)
这也不起作用。
任何帮助将非常感激。谢谢。