PCL-Python (70%)

C++ 코드는 [이곳]arrow-up-right에서 다운로드 가능합니다. 샘플파일은 [tabletop_passthrough.pcd]arrow-up-right을 사용하였습니다. Jupyter 버젼은 [이곳]arrow-up-right에서 확인 가능 합니다. 원본 코드는 [이곳]arrow-up-right을 참고 하였습니다.

!python --version 
!pip freeze | grep pcl
import pcl
import numpy as np
import random
cloud = pcl.load("tabletop_passthrough.pcd")
print(cloud)

do_ransac_plane_segmentation

def do_ransac_plane_segmentation(pcl_data,pcl_sac_model_plane,pcl_sac_ransac,max_distance):
    '''
    Create the segmentation object
    :param pcl_data: point could data subscriber
    :param pcl_sac_model_plane: use to determine plane models
    :param pcl_sac_ransac: RANdom SAmple Consensus
    :param max_distance: Max distance for apoint to be considered fitting the model
    :return: segmentation object
    '''
    seg = pcl_data.make_segmenter()
    seg.set_model_type(pcl_sac_model_plane)
    seg.set_method_type(pcl_sac_ransac)
    seg.set_distance_threshold(max_distance)
    return seg


def  extract_inlier_outlier(pcl_data,ransac_segmentation):
    '''
    :param pcl_data:
    :param ransac_segmentation:
    :return: cloud table and cloud object
    '''
    inliers, coefficients = ransac_segmentation.segment()
    inlier_object = pcl_data.extract(inliers, negative=False)
    outlier_object = pcl_data.extract(inliers, negative=True)
    return inlier_object,outlier_object

do_ransac_plane_normal_segmentation

Indices to Point cloud

SACMODEL

Last updated

Was this helpful?