在网格中移动图像

时间:2015-05-21 09:21:31

标签: python arrays image

我想知道在Python中执行以下操作非常有效。

假设我有一个对象' 这是我的数据的图像,以及一个代表' M&#39的模型; 即可。我在下面创建了一个非常基本的示例,其中数据只是一个圆圈。想象一下,数据在X中略微偏移 3px,在Y 中稍微偏移了2px,我的模型最初设置在中心。 (在这个例子中,数据和模型都位于中心)我希望能够获得模型, M ,并将其移动一个5px x 5px的网格(带1px间隔)并在每次迭代时用数据减去它,看看哪个班次给我的误差最小。

感谢。

import numpy as np
import matplotlib.pyplot as plt

dim = 512

# Create the Data.
xx, yy = np.mgrid[:dim, :dim]
D = (xx - dim/2) ** 2 + (yy - dim/2) ** 2

# Create the Model.
M = D.copy()

plt.imshow(D)
plt.show()

1 个答案:

答案 0 :(得分:0)

好的,我找到了使用Numpy滚动功能的解决方案。

    for shiftY in range(-5, 5):
       for shiftX in range(-5, 5):

          FShifted = np.roll(F, shiftY, axis=0)
          FShifted = np.roll(FShifted, shiftX, axis=1)