numpy数组的边界框

8 浏览
0 Comments

numpy数组的边界框

假设您有一个包含一些随机值和周围为零的二维numpy数组。

示例“倾斜矩形”:

import numpy as np
from skimage import transform
img1 = np.zeros((100,100))
img1[25:75,25:75] = 1.
img2 = transform.rotate(img1, 45)

现在我想找到所有非零数据的最小边界矩形。例如:

a = np.where(img2 != 0)
bbox = img2[np.min(a[0]):np.max(a[0])+1, np.min(a[1]):np.max(a[1])+1]

那么最快的方法是什么?我确信有更好的方法,因为如果我使用1000x1000的数据集,np.where函数需要相当长的时间。

编辑:还应该适用于三维数据...

0