c++下使用Open3D进行DBSCAN聚类

c++下使用Open3D进行DBSCAN聚类

#include 
#include 
#include 
using namespace open3d;
using namespace std;

int main(int argc, char* argv[]) {

    //读取点云
    std::shared_ptr cloud(new geometry::PointCloud);
    open3d::io::ReadPointCloud("C:/Users/a/Desktop/1.ply", *cloud);

    auto cloud_v = cloud->VoxelDownSample(3.0); //采用体素进行降采样,设置值可根据和点云间距进行设定
    std::vector DBSCAN;
    DBSCAN = cloud_v->ClusterDBSCAN(2,7,true);
    auto maxPosition = max_element(DBSCAN.begin(), DBSCAN.end());
    cout << *maxPosition << " at the postion of " << maxPosition - DBSCAN.begin() << endl;
    visualization::DrawGeometries({ cloud_v }, "visualization", 960, 900, 960, 100);
    return 0;
}

你可能感兴趣的:(聚类,c++,DBSCAN,Open3d)