<.Ne>t栏首语

用.Net的时候,想用Java,觉得.Net是性能差,环境也不稳定...并且搞java的工资高, 可用Java 的时候又想用.Net了,觉得.Net开发效率高,速度快,并且许多程序不需要考虑夸平台(我感觉夸平台方面.Net和Jav还是有一定的距离); 其实它们之间各有优缺点,不同的情况选择不同的工具还是比较合理的,有时候是客户的要求,有时候是公司的要求,有时候是个人的选择;  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是基于PCL(点云库)的多边形和直线拟合代码示例: 多边形拟合: ``` #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/filters/extract_indices.h> #include <pcl/features/normal_3d.h> #include <pcl/sample_consensus/method_types.h> #include <pcl/sample_consensus/model_types.h> #include <pcl/segmentation/sac_segmentation.h> #include <pcl/segmentation/extract_polygonal_prism_data.h> int main(int argc, char** argv) { // 加载点云数据 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::io::loadPCDFile<pcl::PointXYZ>("table_scene_lms400.pcd", *cloud); // 创建法线估计对象 pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> ne; pcl::PointCloud<pcl::Normal>::Ptr normals(new pcl::PointCloud<pcl::Normal>); pcl::search::KdTree<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>); tree->setInputCloud(cloud); ne.setInputCloud(cloud); ne.setSearchMethod(tree); ne.setKSearch(50); ne.compute(*normals); // 多边形分割 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_plane(new pcl::PointCloud<pcl::PointXYZ>); pcl::ModelCoefficients::Ptr coefficients_plane(new pcl::ModelCoefficients); pcl::SACSegmentationFromNormals<pcl::PointXYZ, pcl::Normal> seg; seg.setOptimizeCoefficients(true); seg.setModelType(pcl::SACMODEL_NORMAL_PLANE); seg.setNormalDistanceWeight(0.1); seg.setMethodType(pcl::SAC_RANSAC); seg.setMaxIterations(100); seg.setDistanceThreshold(0.03); seg.setInputCloud(cloud); seg.setInputNormals(normals); seg.segment(*inliers_plane, *coefficients_plane); // 提取多边形数据 pcl::ExtractPolygonalPrismData<pcl::PointXYZ> ex; pcl::PointIndices::Ptr inliers(new pcl::PointIndices); ex.setHeightLimits(0.01, 1.0); ex.setInputCloud(cloud); ex.setInputPlanarHull(cloud_plane); ex.segment(*inliers); // 输出结果 std::cerr << "Number of inliers: " << inliers->indices.size() << std::endl; for (int i = 0; i < inliers->indices.size(); ++i) std::cerr << inliers->indices[i] << " " << cloud->points[inliers->indices[i]].x << " " << cloud->points[inliers->indices[i]].y << " " << cloud->points[inliers->indices[i]].z << std::endl; return (0); } ``` 直线拟合: ``` #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/filters/extract_indices.h> #include <pcl/features/normal_3d.h> #include <pcl/sample_consensus/method_types.h> #include <pcl/sample_consensus/model_types.h> #include <pcl/segmentation/sac_segmentation.h> int main(int argc, char** argv) { // 加载点云数据 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IFindit

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值