我想知道在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()
答案 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)