Я бы рекомендовал использовать Matplotlib такого подхода только в качестве примера
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np
f = plt.figure()
ax = f.add_subplot(111)
#create 2d array
t = np.linspace(0, 1, 101)
x, y = np.meshgrid(t, t)
img = np.sin(x-0.5)*np.sin(y-0.5)
ax.imshow(img, origin='lower', extent=[0, 1, 0, 1])
#create a rectangle at positions 0.1, 0.1 with width/height 0.5
#so this would be your bounding box from points (0.1, 0.1), (0.6,0.6) etc
rectangle = patches.Rectangle((0.1, 0.1), 0.5, 0.5, fill=False)
ax.add_patch(rectangle)
plt.show()
print ax.get_xlim()
print ax.get_ylim()
Это создает следующий вывод после того, как сюжет показать
Так после того, как этот участок открывается в Matplotlib вы можете увеличить в сюжет с помощью правой кнопки мыши. Если закрыть участок поток программка продолжается print ax.get_xlim()
и т.д .. Это даст вам новые границы вашего участка, из которого вы должны быть в состоянии вычислить свои новые позиции точки
Я не знаю, как вы famillar с python/matplotlib, но это должно быть довольно прямолинейно, в противном случае дайте мне знать, если вам нужно больше объяснений.
Я не понимаю, где проблема в точности? Что мешает вам делать то, что вы хотите сделать? – Trilarion