当前位置: 首页 > news >正文

wordpress地址站点地址衡阳市住建局官方网站

wordpress地址站点地址,衡阳市住建局官方网站,建一个公司网站需要几天,湖南建筑信息网首页目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 SIFT关键点检测 2.1.2 可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接#xff1a; PCL点云算法与项目实战案例汇总#xff08;长期更新#…目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 SIFT关键点检测 2.1.2 可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接 PCL点云算法与项目实战案例汇总长期更新 一、概述 3D-SIFT关键点检测是SIFT算法在三维点云中的扩展应用。与二维图像的SIFT类似它通过尺度空间的构建和局部特征检测来提取点云的关键点。在三维点云中SIFT可以通过计算每个点在Z方向的梯度找到具有几何显著特征的关键点适用于物体识别、特征匹配、点云配准等应用场景。 1.1原理 SIFTScale-Invariant Feature Transform算法通过建立图像的尺度空间来提取关键点。在三维点云中我们可以通过分析Z轴方向的变化梯度来检测点云的关键点。其核心步骤包括 尺度空间构建通过不同尺度的高斯核卷积构造尺度空间使得算法能够在不同的尺度下检测关键点。最小尺度通过参数 min_scale 设置尺度空间的层数和每个层次的尺度数量由 n_octaves 和 n_scales_per_octave 控制。关键点检测通过对尺度空间的极值点检测来提取关键点极值点通过比较邻域点在不同尺度下的响应得到。为了减少检测到的无效点需要设置最小对比度 min_contrast以过滤掉噪声。梯度估计利用Z方向的变化估计点云中每个点的局部梯度作为响应值。Z轴梯度用于构建响应函数并检测局部极值。 参数解释 min_scale最小尺度控制高斯核的最小标准差。n_octaves尺度空间的层数。n_scales_per_octave每个层次的尺度数量。min_contrast最小对比度用于过滤掉低响应值的点。 1.2实现步骤 加载点云数据。初始化SIFT关键点提取器设置所需的参数如尺度、对比度等。通过SIFT算法提取点云中的关键点并将结果转换为标准的XYZ点云格式。可视化原始点云和提取的SIFT关键点。 1.3应用场景 三维物体识别通过SIFT提取点云的关键点进行特征匹配和物体识别。点云配准利用关键点信息对不同视角的点云进行精确对齐。特征提取用于三维重建、机器人导航等领域中的特征提取和环境感知。 二、代码实现 2.1关键函数 2.1.1 SIFT关键点检测 void extractSIFTKeypoints(pcl::PointCloudpcl::PointXYZ::Ptr cloud, pcl::PointCloudpcl::PointWithScale::Ptr keypoints) {// 设置SIFT算法参数const float min_scale 0.001f; // 设置尺度空间中最小尺度的标准偏差 const int n_octaves 3; // 设置尺度空间层数越小则特征点越多 const int n_scales_per_octave 15; // 设置尺度空间中计算的尺度个数const float min_contrast 0.0001f; // 设置限制关键点检测的阈值 // 创建SIFT关键点检测对象pcl::SIFTKeypointpcl::PointXYZ, pcl::PointWithScale sift;sift.setInputCloud(cloud); // 设置输入点云pcl::search::KdTreepcl::PointXYZ::Ptr tree(new pcl::search::KdTreepcl::PointXYZ ());sift.setSearchMethod(tree); // 设置KdTree搜索sift.setScales(min_scale, n_octaves, n_scales_per_octave); // 设置尺度范围sift.setMinimumContrast(min_contrast); // 设置最小对比度// 执行SIFT关键点检测sift.compute(*keypoints); }2.1.2 可视化函数 void visualizeSIFTKeypoints(pcl::PointCloudpcl::PointXYZ::Ptr cloud, pcl::PointCloudpcl::PointXYZ::Ptr keypoints) {boost::shared_ptrpcl::visualization::PCLVisualizer viewer(new pcl::visualization::PCLVisualizer(SIFT Keypoints Viewer));int v1(0), v2(0);viewer-createViewPort(0, 0.0, 0.5, 1.0, v1);viewer-setBackgroundColor(1.0, 1.0, 1.0, v1); // 设置白色背景viewer-addText(Original Point Cloud, 10, 10, v1_text, v1);viewer-createViewPort(0.5, 0.0, 1.0, 1.0, v2);viewer-setBackgroundColor(0.98, 0.98, 0.98, v2); // 设置灰色背景viewer-addText(SIFT Keypoints, 10, 10, v2_text, v2);// 原始点云显示为绿色pcl::visualization::PointCloudColorHandlerCustompcl::PointXYZ original_color(cloud, 0, 255, 0);viewer-addPointCloud(cloud, original_color, original_cloud, v1);// 关键点显示为红色pcl::visualization::PointCloudColorHandlerCustompcl::PointXYZ keypoints_color(keypoints, 255, 0, 0);viewer-addPointCloud(keypoints, keypoints_color, keypoints_cloud, v2);// 设置点大小viewer-setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 5, keypoints_cloud);// 添加坐标系viewer-addCoordinateSystem(1.0);while (!viewer-wasStopped()){viewer-spinOnce(100);boost::this_thread::sleep(boost::posix_time::microseconds(100000));} }2.2完整代码 #include iostream #include pcl/io/pcd_io.h #include pcl/point_types.h #include pcl/keypoints/sift_keypoint.h #include pcl/visualization/pcl_visualizer.h #include pcl/common/time.h #include boost/thread/thread.hpp// 基于Z梯度估计3D点云的SIFT关键点 namespace pcl {templatestruct SIFTKeypointFieldSelectorPointXYZ{inline floatoperator () (const PointXYZ p) const{return p.z;}}; }// 提取SIFT关键点 void extractSIFTKeypoints(pcl::PointCloudpcl::PointXYZ::Ptr cloud, pcl::PointCloudpcl::PointWithScale::Ptr keypoints) {const float min_scale 0.001f; // 设置尺度空间中最小尺度的标准偏差 const int n_octaves 3; // 设置尺度空间层数越小则特征点越多 const int n_scales_per_octave 15; // 设置尺度空间中计算的尺度个数const float min_contrast 0.0001f; // 设置限制关键点检测的阈值 // 创建SIFT关键点检测对象pcl::SIFTKeypointpcl::PointXYZ, pcl::PointWithScale sift;sift.setInputCloud(cloud); // 设置输入点云pcl::search::KdTreepcl::PointXYZ::Ptr tree(new pcl::search::KdTreepcl::PointXYZ());sift.setSearchMethod(tree); // 设置KdTree搜索sift.setScales(min_scale, n_octaves, n_scales_per_octave); // 设置尺度范围sift.setMinimumContrast(min_contrast); // 设置最小对比度// 执行SIFT关键点检测sift.compute(*keypoints); }// 可视化SIFT关键点 void visualizeSIFTKeypoints(pcl::PointCloudpcl::PointXYZ::Ptr cloud, pcl::PointCloudpcl::PointXYZ::Ptr keypoints) {boost::shared_ptrpcl::visualization::PCLVisualizer viewer(new pcl::visualization::PCLVisualizer(SIFT Keypoints Viewer));int v1(0), v2(0);viewer-createViewPort(0, 0.0, 0.5, 1.0, v1);viewer-setBackgroundColor(1.0, 1.0, 1.0, v1); // 设置白色背景viewer-addText(Original Point Cloud, 10, 10, v1_text, v1);viewer-createViewPort(0.5, 0.0, 1.0, 1.0, v2);viewer-setBackgroundColor(0.98, 0.98, 0.98, v2); // 设置灰色背景viewer-addText(SIFT Keypoints, 10, 10, v2_text, v2);// 原始点云显示为绿色pcl::visualization::PointCloudColorHandlerCustompcl::PointXYZ original_color(cloud, 0, 255, 0);viewer-addPointCloud(cloud, original_color, original_cloud, v1);// 关键点显示为红色pcl::visualization::PointCloudColorHandlerCustompcl::PointXYZ keypoints_color(keypoints, 255, 0, 0);viewer-addPointCloud(keypoints, keypoints_color, keypoints_cloud, v2);// 设置点大小viewer-setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, keypoints_cloud);// 添加坐标系viewer-addCoordinateSystem(0.1);while (!viewer-wasStopped()){viewer-spinOnce(100);boost::this_thread::sleep(boost::posix_time::microseconds(100000));} }int main(int argc, char* argv[]) {pcl::StopWatch watch; // 计时器pcl::PointCloudpcl::PointXYZ::Ptr cloud_xyz(new pcl::PointCloudpcl::PointXYZ);pcl::io::loadPCDFile(bunny.pcd, *cloud_xyz);// 提取SIFT关键点pcl::PointCloudpcl::PointWithScale::Ptr sift_keypoints(new pcl::PointCloudpcl::PointWithScale);extractSIFTKeypoints(cloud_xyz, sift_keypoints);// 将SIFT关键点转换为标准XYZ格式pcl::PointCloudpcl::PointXYZ::Ptr cloud_temp(new pcl::PointCloudpcl::PointXYZ);pcl::copyPointCloud(*sift_keypoints, *cloud_temp);std::cout Extracted sift_keypoints-size() keypoints std::endl;std::cout SIFT关键点提取用时 watch.getTimeSeconds() 秒 std::endl;// 可视化输入点云和SIFT关键点visualizeSIFTKeypoints(cloud_xyz, cloud_temp);return 0; }三、实现效果
http://www.hkea.cn/news/14281103/

相关文章:

  • 深圳企业网站制作企业百度小程序开发教程
  • 通用精品课程网站建设的需求分析wordpress年会员
  • 网站备案有什么用怎么做网站管理
  • 虚拟主机怎么建设网站网站功能设计指什么
  • wordpress做管理网站网站域名费怎么查询
  • 南通建设公司网站紧急通知网页升级记住我们
  • 网站快速收录教程个人音乐网站策划书范文
  • 住房和建设厅官方网站滨州网站建设求职简历
  • 电子商务网站设计代做有专业做网站优化的吗
  • 佛山如何建立网站土特产网站建设状况
  • 中怎么做网站上下载图片的功能wordpress创建短代码
  • 南宁网站的优化建筑模板价格规格大全
  • 旅行社网站模板wordpress固定连接类型
  • 广告设计的基本流程步骤wordpress添加分类目录seo标题
  • 高端网站建设 炫酷嘉兴关键词优化报价
  • 哈尔滨双城区建设局网站17网站一起做网店杭州
  • 网站开发中间商怎么做太原市建设工程质量监督站网站
  • 网站建设忄金手指花总软件开发包括网站开发吗
  • 网站开发代码交接文档书网站的后台是开发做的
  • 网站开发和设计人员的岗位要求网站建设辶金手指谷哥十四
  • 网站建设前端和后端的区别化工行业网站建设
  • 网站域名都需要备案吗优秀手机网站模板图片
  • 怎样做网站轮播移动电商网站开发需求文档
  • 北京网站建设分析论文p2p网上贷款网站建设方案.docx
  • 创维爱内购网站做方案的网站
  • 敬老院网站建设方案微信营销软件免费版
  • 免费的网站模板网址导航下载到桌面
  • 专业的网站建设联系方式安徽平台网站建设哪里好
  • 网站设计图尺寸富阳网站建设报价
  • 单人做网站需要掌握哪些知识乐清网站推广