When detecting building roof top ransac is detecting multiple building roof as a one single plane. I want to segment each building rooftop separately.
How the data looks like https://i.stack.imgur.com/cAFRL.png
What ransac produce https://i.stack.imgur.com/PsRgr.png
What i want https://i.stack.imgur.com/r7Pz7.png
This is what i have tried
import os
import open3d as o3d
import numpy as np
test_data_dir = 'M:\\lidar\\Test\\'
point_cloud_file_name = 'boutlier.txt'
point_cloud_file_path = os.path.join(test_data_dir, point_cloud_file_name)
pcd = o3d.io.read_point_cloud(point_cloud_file_path,format="xyz")
plane_model, inliers = pcd.segment_plane(distance_threshold=2.5,
ransac_n=3,
num_iterations=1000)
inlier_cloud = pcd.select_by_index(inliers)
inlier_cloud.paint_uniform_color([0.5, 0, 0.5])
outlier_cloud = pcd.select_by_index(inliers, invert=True)
o3d.visualization.draw_geometries([inlier_cloud])