在质心周围裁剪一个正方形(numpy)

时间:2018-12-13 08:05:58

标签: python numpy coordinates crop centroid

我有一个包含圆的numpy数组图像。我提取了这些圆的整个x,y重心(以像素为单位)(还有一个numpy数组)。现在,我想在每个x,y重心周围裁剪一个正方形。 有人可以指导我如何解决吗? 请注意,我在Stack中未找到任何有关特定坐标周围作物的问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您的质心具有索引i,j,并且您想在一个numpy数组2*w+1上裁剪一个大小为a的正方形,则可以进行

a[i-w:i+w+1,j-w:j+w+1]

这是假设您的索引距边界的总和始终大于w

如果不是,您可以这样做

imin = max(0,i-w)
imax = min(a.shape[0],i+w+1)
jmin = max(0,j-w)
jmax = min(a.shape[1],j+w+1) 
a[imin:imax,jmin:jmax]