#python #3d #computer-vision #point-cloud-library #point-clouds
Вопрос:
Я использовал алгоритм RANSAC для определения лучшей плоскости, и я хочу, чтобы другие плоскости были найдены до тех пор, пока не останется минимальное количество точек, что означает, что я должен обнаружить все плоскости с помощью RANSAC, пересечь плоскости, чтобы получить полигоны поверхности (грани модели), и экспортировать модель как .ply и .ifc. Я попытался реализовать этот псевдокод: удалите дополнительные точки после обнаружения лучшей плоскости, пока не будет достигнуто минимальное количество точек, но я получаю ошибку при реализации этой части. Я что-то упускаю из своей реализации>
Алгоритм RANSAC для определения лучшей плоскости:
import numpy as np
import matplotlib
import open3d as o3d
pcd = o3d.io.read_point_cloud("C:\Users\,,")
plane_model,inliers = pcd.segment_plane(distance_threshold=0.01, ransac_n=3,
num_iterations=1000)
[a, b, c, d] = plane_model
inlier_cloud = pcd.select_by_index(inliers)
outlier_cloud = pcd.select_by_index(inliers, invert=True)
inlier_cloud.paint_uniform_color([1, 0, 0])
outlier_cloud.paint_uniform_color([0.6, 0.6, 0.6])
o3d.visualization.draw_geometries([inlier_cloud, outlier_cloud])