2013-05-06 42 views
1

我有兩個numpy陣列:數據和掩膜。面具和數據的大小不一樣,所以我把它們想象成畫布和郵票。我怎樣在不同的地點蓋上我的畫布?在更大的陣列中偏移掩膜

import numpy as np 
import matplotlib.pyplot as plt 

# Make a canvas 
canvas = np.zeros(2500).reshape(50, 50) 

# Make a "stamp" 
r = 10 
xx, yy = np.mgrid[ :r * 2, :r * 2 ] 
stamp = ((xx - r) ** 2 + (yy - r) ** 2) < r**2 

# Draw on the canvas 
canvas[stamp] = 10 

# Display the drawing 
plt.imshow(canvas) 
plt.show() 

我得到這個: what I can do

我怎樣才能在不同的位置標記,以得到這樣的事情? what I'd like to do

回答

2

首先從畫布中裁剪出矩形(與郵票大小相同)。

# Draw on the canvas 
canvas[x_offset : x_offset + stamp.shape[0], 
     y_offset : y_offset + stamp.shape[1]][stamp] = 10