找网络公司做的网站可以出售吗,wordpress新闻类主题,网站开发好难呀,酒店网站模版目录
一、概述
1.1原理
1.2实现步骤
1.3应用场景
二、代码实现
2.1关键函数
2.1.1 加载点云数据
2.1.2 执行4PCS粗配准
2.1.3 可视化源点云、目标点云和配准结果
2.2完整代码
三、实现效果
3.1原始点云
3.2配准后点云 PCL点云算法汇总及实战案例汇总的目录地址链接…目录
一、概述
1.1原理
1.2实现步骤
1.3应用场景
二、代码实现
2.1关键函数
2.1.1 加载点云数据
2.1.2 执行4PCS粗配准
2.1.3 可视化源点云、目标点云和配准结果
2.2完整代码
三、实现效果
3.1原始点云
3.2配准后点云 PCL点云算法汇总及实战案例汇总的目录地址链接
PCL点云算法与项目实战案例汇总长期更新 一、概述 4PCS四点一致集算法是一种用于点云配准的粗配准方法。该算法通过寻找目标点云和源点云之间具有几何约束的四点集合进行匹配继而估计出变换矩阵。4PCS 算法具有较好的抗噪性和计算效率适用于较大尺度的点云配准场景。 1.1原理 4PCS 算法通过以下步骤进行粗配准 点云采样从源点云和目标点云中采样若干点形成四点集合。几何一致性验证计算这四个点在两个点云中的相对距离通过几何一致性约束找到符合要求的四点集合。估计变换矩阵使用一致的四点集合计算源点云到目标点云的变换矩阵。应用变换矩阵将计算得到的变换矩阵应用到源点云上使其与目标点云对齐。 配准结果的质量依赖于 重叠率设置源点云和目标点云的近似重叠率。采样点数量设置参与匹配的采样点数量。精度参数 Delta控制配准的精度通过对配准点云的稀疏化进行加速。 1.2实现步骤 加载源点云和目标点云。设置4PCS配准参数包括近似重叠率、采样点数量、精度参数等。执行4PCS粗配准通过设置参数执行粗配准得到变换矩阵。应用变换矩阵将源点云应用变换矩阵对齐至目标点云。可视化结果将源点云、目标点云以及对齐后的点云进行可视化对比。 1.3应用场景 粗配准阶段4PCS 可以用于点云配准的初步阶段提供较为快速的粗略对齐结果后续可以使用更精细的算法如ICP进行精配准。多场景拼接在多视角点云场景下4PCS 可以帮助快速匹配不同视角的点云数据。点云地图生成在SLAM同步定位与地图构建中4PCS 可以用于不同帧之间的点云匹配与对齐。 二、代码实现
2.1关键函数
2.1.1 加载点云数据
void loadPointClouds(pcl::PointCloudpcl::PointXYZ::Ptr source_cloud, pcl::PointCloudpcl::PointXYZ::Ptr target_cloud)
{if (pcl::io::loadPCDFilepcl::PointXYZ(hand_trans.pcd, *target_cloud) -1) {PCL_ERROR(读取目标点云失败 \n);}if (pcl::io::loadPCDFilepcl::PointXYZ(hand.pcd, *source_cloud) -1) {PCL_ERROR(读取源点云失败 \n);}
}
2.1.2 执行4PCS粗配准
void perform4PCSRegistration(pcl::PointCloudpcl::PointXYZ::Ptr source_cloud, pcl::PointCloudpcl::PointXYZ::Ptr target_cloud, pcl::PointCloudpcl::PointXYZ::Ptr aligned_cloud, Eigen::Matrix4f transformation_matrix)
{pcl::registration::FPCSInitialAlignmentpcl::PointXYZ, pcl::PointXYZ fpcs;fpcs.setInputSource(source_cloud);fpcs.setInputTarget(target_cloud);fpcs.setApproxOverlap(0.7); // 设置近似重叠率fpcs.setDelta(0.01); // 精度参数fpcs.setNumberOfSamples(100); // 采样点数量fpcs.align(*aligned_cloud); // 执行配准transformation_matrix fpcs.getFinalTransformation(); // 获取变换矩阵
}2.1.3 可视化源点云、目标点云和配准结果
// 可视化源点云、目标点云和配准结果
void visualizePointClouds(pcl::PointCloudpcl::PointXYZ::Ptr source_cloud, pcl::PointCloudpcl::PointXYZ::Ptr target_cloud)
{boost::shared_ptrpcl::visualization::PCLVisualizer viewer(new pcl::visualization::PCLVisualizer(Point Cloud Registration Viewer));viewer-setBackgroundColor(1.0, 1.0, 1.0); // 设置背景颜色为黑色pcl::visualization::PointCloudColorHandlerCustompcl::PointXYZ target_color(target_cloud, 255, 0, 0);viewer-addPointCloud(target_cloud, target_color, target cloud); // 目标点云红色pcl::visualization::PointCloudColorHandlerCustompcl::PointXYZ source_color(source_cloud, 0, 0, 255);viewer-addPointCloud(source_cloud, source_color, source cloud); // 源点云蓝色viewer-setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, target cloud);viewer-setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, source cloud);while (!viewer-wasStopped()) {viewer-spinOnce();}
}
2.2完整代码
#include iostream
#include pcl/io/pcd_io.h
#include pcl/point_types.h
#include pcl/registration/ia_fpcs.h
#include pcl/console/time.h
#include boost/thread/thread.hpp
#include pcl/visualization/pcl_visualizer.h// 加载点云数据
void loadPointClouds(pcl::PointCloudpcl::PointXYZ::Ptr source_cloud, pcl::PointCloudpcl::PointXYZ::Ptr target_cloud)
{if (pcl::io::loadPCDFilepcl::PointXYZ(hand_trans.pcd, *target_cloud) -1) {PCL_ERROR(读取目标点云失败 \n);}if (pcl::io::loadPCDFilepcl::PointXYZ(hand.pcd, *source_cloud) -1) {PCL_ERROR(读取源点云失败 \n);}
}// 执行4PCS粗配准
void perform4PCSRegistration(pcl::PointCloudpcl::PointXYZ::Ptr source_cloud, pcl::PointCloudpcl::PointXYZ::Ptr target_cloud, pcl::PointCloudpcl::PointXYZ::Ptr aligned_cloud, Eigen::Matrix4f transformation_matrix)
{pcl::registration::FPCSInitialAlignmentpcl::PointXYZ, pcl::PointXYZ fpcs;fpcs.setInputSource(source_cloud);fpcs.setInputTarget(target_cloud);fpcs.setApproxOverlap(0.7); // 设置近似重叠率fpcs.setDelta(0.01); // 精度参数fpcs.setNumberOfSamples(1000); // 采样点数量fpcs.align(*aligned_cloud); // 执行配准transformation_matrix fpcs.getFinalTransformation(); // 获取变换矩阵
}// 可视化源点云、目标点云和配准结果
// 可视化源点云、目标点云和配准结果
void visualizePointClouds(pcl::PointCloudpcl::PointXYZ::Ptr source_cloud, pcl::PointCloudpcl::PointXYZ::Ptr target_cloud)
{boost::shared_ptrpcl::visualization::PCLVisualizer viewer(new pcl::visualization::PCLVisualizer(Point Cloud Registration Viewer));viewer-setBackgroundColor(1.0, 1.0, 1.0); // 设置背景颜色为黑色pcl::visualization::PointCloudColorHandlerCustompcl::PointXYZ target_color(target_cloud, 255, 0, 0);viewer-addPointCloud(target_cloud, target_color, target cloud); // 目标点云红色pcl::visualization::PointCloudColorHandlerCustompcl::PointXYZ source_color(source_cloud, 0, 0, 255);viewer-addPointCloud(source_cloud, source_color, source cloud); // 源点云蓝色viewer-setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, target cloud);viewer-setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, source cloud);while (!viewer-wasStopped()) {viewer-spinOnce();}
}int main(int argc, char** argv)
{pcl::console::TicToc time;pcl::PointCloudpcl::PointXYZ::Ptr target_cloud(new pcl::PointCloudpcl::PointXYZ);pcl::PointCloudpcl::PointXYZ::Ptr source_cloud(new pcl::PointCloudpcl::PointXYZ);loadPointClouds(source_cloud, target_cloud);pcl::PointCloudpcl::PointXYZ::Ptr aligned_cloud(new pcl::PointCloudpcl::PointXYZ);Eigen::Matrix4f transformation_matrix;time.tic();perform4PCSRegistration(source_cloud, target_cloud, aligned_cloud, transformation_matrix);cout FPCS配准用时 time.toc() ms endl;cout 变换矩阵 transformation_matrix endl;//显示原始点云visualizePointClouds(source_cloud, target_cloud);//显示配准后点云visualizePointClouds(target_cloud, aligned_cloud);return 0;
}三、实现效果
3.1原始点云 3.2配准后点云
文章转载自: http://www.morning.pqwrg.cn.gov.cn.pqwrg.cn http://www.morning.jfqqs.cn.gov.cn.jfqqs.cn http://www.morning.tgwfn.cn.gov.cn.tgwfn.cn http://www.morning.mcwgn.cn.gov.cn.mcwgn.cn http://www.morning.rbqlw.cn.gov.cn.rbqlw.cn http://www.morning.sffkm.cn.gov.cn.sffkm.cn http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn http://www.morning.gtmgl.cn.gov.cn.gtmgl.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.qzsmz.cn.gov.cn.qzsmz.cn http://www.morning.fgsct.cn.gov.cn.fgsct.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.jljiangyan.com.gov.cn.jljiangyan.com http://www.morning.xrksf.cn.gov.cn.xrksf.cn http://www.morning.xmtzk.cn.gov.cn.xmtzk.cn http://www.morning.wjjxr.cn.gov.cn.wjjxr.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.kstgt.cn.gov.cn.kstgt.cn http://www.morning.lnmby.cn.gov.cn.lnmby.cn http://www.morning.ttnfc.cn.gov.cn.ttnfc.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.ltxgk.cn.gov.cn.ltxgk.cn http://www.morning.bfsqz.cn.gov.cn.bfsqz.cn http://www.morning.syznh.cn.gov.cn.syznh.cn http://www.morning.ndtmz.cn.gov.cn.ndtmz.cn http://www.morning.rfhm.cn.gov.cn.rfhm.cn http://www.morning.zqmdn.cn.gov.cn.zqmdn.cn http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn http://www.morning.clbsd.cn.gov.cn.clbsd.cn http://www.morning.dwtdn.cn.gov.cn.dwtdn.cn http://www.morning.fnpmf.cn.gov.cn.fnpmf.cn http://www.morning.bhdyr.cn.gov.cn.bhdyr.cn http://www.morning.ampingdu.com.gov.cn.ampingdu.com http://www.morning.rftk.cn.gov.cn.rftk.cn http://www.morning.ffbp.cn.gov.cn.ffbp.cn http://www.morning.mnbcj.cn.gov.cn.mnbcj.cn http://www.morning.fhjnh.cn.gov.cn.fhjnh.cn http://www.morning.zknjy.cn.gov.cn.zknjy.cn http://www.morning.iqcge.com.gov.cn.iqcge.com http://www.morning.tdfyj.cn.gov.cn.tdfyj.cn http://www.morning.ymbqr.cn.gov.cn.ymbqr.cn http://www.morning.wfzlt.cn.gov.cn.wfzlt.cn http://www.morning.jgrjj.cn.gov.cn.jgrjj.cn http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn http://www.morning.wkrkb.cn.gov.cn.wkrkb.cn http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn http://www.morning.tkcz.cn.gov.cn.tkcz.cn http://www.morning.sjmxh.cn.gov.cn.sjmxh.cn http://www.morning.yuminfo.com.gov.cn.yuminfo.com http://www.morning.trkl.cn.gov.cn.trkl.cn http://www.morning.mlmwl.cn.gov.cn.mlmwl.cn http://www.morning.dnqlba.cn.gov.cn.dnqlba.cn http://www.morning.wqfrd.cn.gov.cn.wqfrd.cn http://www.morning.jcwrb.cn.gov.cn.jcwrb.cn http://www.morning.qpmwb.cn.gov.cn.qpmwb.cn http://www.morning.hrgxk.cn.gov.cn.hrgxk.cn http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn http://www.morning.wdply.cn.gov.cn.wdply.cn http://www.morning.wqfrd.cn.gov.cn.wqfrd.cn http://www.morning.xqnzn.cn.gov.cn.xqnzn.cn http://www.morning.brld.cn.gov.cn.brld.cn http://www.morning.dpdr.cn.gov.cn.dpdr.cn http://www.morning.mywmb.cn.gov.cn.mywmb.cn http://www.morning.bloao.com.gov.cn.bloao.com http://www.morning.thzwj.cn.gov.cn.thzwj.cn http://www.morning.hphfy.cn.gov.cn.hphfy.cn http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn http://www.morning.mrnnb.cn.gov.cn.mrnnb.cn http://www.morning.mlnzx.cn.gov.cn.mlnzx.cn http://www.morning.dfltx.cn.gov.cn.dfltx.cn http://www.morning.pcngq.cn.gov.cn.pcngq.cn http://www.morning.mflhr.cn.gov.cn.mflhr.cn http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn http://www.morning.cwzzr.cn.gov.cn.cwzzr.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.fwllb.cn.gov.cn.fwllb.cn http://www.morning.ghrhb.cn.gov.cn.ghrhb.cn http://www.morning.hwzzq.cn.gov.cn.hwzzq.cn http://www.morning.rwtlj.cn.gov.cn.rwtlj.cn