假设您有一个2D 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)
Run Code Online (Sandbox Code Playgroud)
现在我想找到所有非零数据的最小边界矩形.例如:
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]
Run Code Online (Sandbox Code Playgroud)
实现这一结果的最快方法是什么?我确信有更好的方法,因为如果我使用1000x1000数据集,np.where函数需要相当长的时间.
编辑:还应该在3D中工作......