一种新的三维点云轮廓边界提取方案:
1 手动选择一个边界或者其附近的点
2 自动搜索临近区域,并找到附近的平面和进行平面分割
3 提取平面的交点
4 该交点就是点云的轮廓边界点,把它往两边延展,就是完整的点云轮廓边界
import open3d as o3d
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import pairwise_distances
class PointCloudProcessing:
def __init__(self, point_cloud_path):
self.point_cloud = o3d.io.read_point_cloud(point_cloud_path)
self.seed_point = None
self.picked_indices = None
# 交互式选择点
def pick_points(self):
print("")
print(
"1) 请至少选择三个对应点,使用 [Shift + 左键单击]"
)
print(" 按 [Shift + 右键单击] 取消点的选择")
print("2) 选择完点后,按 'Q' 键关闭窗口")
vis = o3d.visualization.VisualizerWithEditin