如何在特定点放大图像+在缩放后跟踪特定点

时间:2015-11-17 13:48:09

标签: python image matlab zoom

我想放大图像朝向图像中特定的定义点。

此外,图像中有一个边界框,我知道它的4个角的坐标。我想在放大图像时跟踪这些点,并且在缩放图像后,如果边界框仍然在缩放图像中,我将在缩放图像中具有边界框的4个角的坐标。

1 个答案:

答案 0 :(得分:3)

我建议使用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()

在绘图显示

后创建以下输出

Ratchet

因此,在matplotlib中打开此图后,您可以使用鼠标右键放大图。如果你关闭图,程序流继续print ax.get_xlim()等。 这将为您提供绘图的新限制,您应该可以从中计算新的点位置

我不知道你对python / matplotlib有多熟悉,但这应该是非常直接的,否则请告诉我你是否需要更多的解释