如何轻松选择方阵中的几个圆形区域?

时间:2015-06-24 09:50:26

标签: arrays python-2.7 numpy

我目前正在定义一个区域:

target=zeros((256,256))

如果我想在这个大区域中定义2个正方形区域,我可以这样做:

target[50:60,50:60] = 1
target[100:110,100:110] = 1

如果我想为中心周围的半径定义参数5的圆形区域,我可以这样做:

target[where(hypot(indice1,indice2)<5)] = 1

但是,如何轻松定义几个不在中心周围的圆形区域,而是一个特定的位置?

换句话说,如何定义以位置(10,10)为中心的半径为8的圆形区域,另一个以位置(123,35)为中心的半径2 ...

非常感谢!

1 个答案:

答案 0 :(得分:1)

试试这个

xx,yy = np.meshgrid(np.arange(256),np.arange(256))

mask = ((xx-10)**2+(yy-10)**2 < 8**2) | ((xx-123)**2+(yy-35)**2 < 2**2)

target[mask] = 1