两个点云的重叠部分查找(附open3d python 代码)

方案1

使用 compute_point_cloud_distance: 它计算源点云中的每个点到目标点云中最近点的距离。距离近的点就是重叠点,距离远的点就是非重叠点

方案2

把两个点云变成2个集合set 数据类型,然后求集合的交集就行了,交集就是重叠点,非交集部分就是非重叠点

import open3d as o3d
import numpy as np

source = o3d.io.read_point_cloud("1.pcd")
target = o3d.io.read_point_cloud("2.pcd")
dists = source.compute_point_cloud_distance(target)  # 它计算源点云中的每个点到目标点云中最近点的距离。
dists = np.asarray(dists)
ind = np.where(dists < 0.01)[0]  

inlier_cloud = cloud.select_by_index(m_ind)  # 重叠点云
outlier_cloud = cloud.select_by_index(m_ind, invert=True)  # 非重叠点云

你可能感兴趣的:(点云-激光雷达处理代码合集,python为主,java,数据库,点云,算法,python)