PCL擬合平面和球面模型

2021-09-26 03:45:03 字數 1706 閱讀 2251

pcl::sampleconsensusmodelsphere::ptr

model_s(new pcl::sampleconsensusmodelsphere(cloud));

pcl::sampleconsensusmodelplane::ptr

model_p (new pcl::sampleconsensusmodelplane(cloud));

pcl::randomsampleconsensusransac (model_p);//例項化乙個隨機取樣物件

ransac.setdistancethreshold (.01);//設定擬合閾值

ransac.computemodel();//根據模型獲得內點

ransac.getinliers(inliers);//儲存內點至inliers

// copies all inliers of the model computed to another pointcloud

pcl::copypointcloud(*cloud, inliers, *final);//根據inliers索引,將輸入的點雲cloud中的點挑選到final存放

#include #include #include #include #include #include #include #include #include #include //定義乙個視覺化函式

boost::shared_ptr******vis (pcl::pointcloud::constptr cloud,pcl::pointcloud::constptr cloud_in)

intmain(int argc, char** ar**)

else

} std::vectorinliers;

pcl::sampleconsensusmodelsphere::ptr

model_s(new pcl::sampleconsensusmodelsphere(cloud));

pcl::sampleconsensusmodelplane::ptr

model_p (new pcl::sampleconsensusmodelplane(cloud));

if(pcl::console::find_argument (argc, ar**, "-f") >= 0)

else if (pcl::console::find_argument (argc, ar**, "-sf") >= 0 )

std::cout<

std::cerr<

if (pcl::console::find_argument (argc, ar**, "-f") >= 0 || pcl::console::find_argument (argc, ar**, "-sf") >= 0)

viewer = ******vis(final,cloud);

else

viewer = ******vis(cloud,cloud);

while (!viewer->wasstopped ())

return 0;

}

擬合平面模型

擬合球面模型

PCL學習3 平面擬合

pcl平面擬合功能位於模組sample consensus中 pcl sample consensus 該模組基於 隨機抽樣一致演算法 random sample consensus 不僅可以用於平面擬合,也可以擬合柱面 球面等,對ransac的簡單解釋 ransac可以從一組包含 局外點 的觀測資...

PCL 使用RANSAC擬合平面

二 示例 三 結果展示 隨機抽樣一致性演算法ransac random sample consensus 是一種迭代的方法來從一系列包含有離異值的資料中計算數學模型引數的方法。ransac演算法本質上由兩步組成,不斷進行迴圈 1 從輸入資料中隨機選出能組成數學模型的最小數目的元素,使用這些元素計算出...

PCL之平面分割模型

展示 include include include include include include include include using namespace std using pointt pcl pointxyz int main 建立分割時所需要的模型係數物件,coefficients...