open3d 点云直通滤波

这个真的太简单了,我就直接上代码了,包括了X,Y,Z 三个方向的直通滤波,以及可以根据偏航角范围来滤波;

def filter(point_stack):
    y = point_stack[:, 1]
    x = point_stack[:, 0]
    # z = point_stack[:, 2]
    # yaw = np.arctan2(y, x)
    # print(yaw.max, yaw.min)
    # print(x.max(), x.min())
    # print(y.max(), y.min())

    # print(z.max(), z.min())

    # field1 = yaw < 0.8
    # field2 = yaw > 0.3
    # field = np.logical_and(field1, field2)
    field1 = x < 20
    field2 = x > 1.5   # 滤波的时候根据自己的需求改这里的数值即可
    field = np.logical_and(field1, field2)
    field3 = np.abs(y) > 5
    field = np.logical_and(field, field3)
    point_stack = point_stack[field, :]
    return point_stack



filename_pic = r"2.pcd"
pcd_source = o3d.io.read_point_cloud(filename_pic)

target_np = np.asarray(pcd_source.points)
source = filter(target_np)


版权声明:本文为a394467238原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。