【发布时间】:2017-07-10 04:59:40
【问题描述】:
我有来自多个点云文件的数百万个 xyz 坐标,这些文件存储在一个二维 numpy 数组中:[[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)]
我将如何修改上面的代码以使其与 xyz 坐标一起工作,以通过使用两个 xy 坐标描述的边界框进行过滤?
【问题讨论】:
标签: python numpy coordinates point-clouds