我有来自多个点云文件的数百万个xyz坐标,我将它们存储在一个二维numpy数组中:
我想过滤所有位于特定边界框内的点,该边界框由4个坐标描述:
我已经找到了以下用于使用numpy过滤坐标的代码,它几乎符合我的要求。唯一的区别是(如果我理解正确的话),我的二维数组还具有z坐标。
我需要修改上述代码以便使用由两个xy坐标描述的边界框筛选xyz坐标。
[[x1, y1, z1], [x2, y2, z2],..., [xn, yn, zn]]
。我想过滤所有位于特定边界框内的点,该边界框由4个坐标描述:
[[x1, y1], [x2, y2]]
,即矩形的左下和右上坐标。我已经找到了以下用于使用numpy过滤坐标的代码,它几乎符合我的要求。唯一的区别是(如果我理解正确的话),我的二维数组还具有z坐标。
import random
import numpy as np
points = [(random.random(), random.random()) for i in range(100)]
bx1, bx2 = sorted([random.random(), random.random()])
by1, by2 = sorted([random.random(), random.random()])
pts = np.array(points)
ll = np.array([bx1, by1]) # lower-left
ur = np.array([bx2, by2]) # upper-right
inidx = np.all(np.logical_and(ll <= pts, pts <= ur), axis=1)
inbox = pts[inidx]
outbox = pts[np.logical_not(inidx)]
我需要修改上述代码以便使用由两个xy坐标描述的边界框筛选xyz坐标。