前言:

三维点云为三维欧式空间点的集合。对点云的形状描述若使用局部特征,则可分为两种:固定世界坐标系的局部描述和寻找局部主方向的局部描述,ROPS特征为寻找局部主方向的特征描述。

1.寻找主方向(对XYZ轴经过特定旋转)LFR:

<1>.计算法线特征:这一步是非常耗计算量的,若达到可以接受的法线精度,此过程几乎占据了 整个计算过程的50%;可选择的方法有 使用空间树索引建立近邻域,对近邻平面拟合,平面的参数方向既是法线一个方向。

<2>.进行多边形重建:利用贪婪投影的方法进行三角形重建,这个事一个调参数的过程,没有可以完全的方法。

参数有:

         gp3.setSearchMethod (treeNor);gp3.setSearchRadius (Gp3PolyParam.SearchRadius);// Set 最大搜索半径gp3.setMu            (Gp3PolyParam.MuTypeValue);// Set typical values gp3.setMaximumNearestNeighbors (Gp3PolyParam.MaximumNearestNeighbors);gp3.setMaximumSurfaceAngle  (Gp3PolyParam.MaximumSurfaceAngle); // 45 度gp3.setMinimumAngle               ( Gp3PolyParam.MinimumAngle); // 10 度gp3.setMaximumAngle                (Gp3PolyParam.MaximumAngle); // 120 度gp3.setNormalConsistency      (Gp3PolyParam.NormalConsistency);

<3>.计算整幅图像的ROPS特征:

查找PCL官网的tutoriales:http://pointclouds.org/documentation/tutorials/rops_feature.php。

#include <pcl/features/rops_estimation.h>
#include <pcl/io/pcd_io.h>int main (int argc, char** argv)
{if (argc != 4)return (-1);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ> ());if (pcl::io::loadPCDFile (argv[1], *cloud) == -1)return (-1);pcl::PointIndicesPtr indices = boost::shared_ptr <pcl::PointIndices> (new pcl::PointIndices ());std::ifstream indices_file;indices_file.open (argv[2], std::ifstream::in);for (std::string line; std::getline (indices_file, line);){std::istringstream in (line);unsigned int index = 0;in >> index;indices->indices.push_back (index - 1);}indices_file.close ();std::vector <pcl::Vertices> triangles;std::ifstream triangles_file;triangles_file.open (argv[3], std::ifstream::in);for (std::string line; std::getline (triangles_file, line);){pcl::Vertices triangle;std::istringstream in (line);unsigned int vertex = 0;in >> vertex;triangle.vertices.push_back (vertex - 1);in >> vertex;triangle.vertices.push_back (vertex - 1);in >> vertex;triangle.vertices.push_back (vertex - 1);triangles.push_back (triangle);}float support_radius = 0.0285f;unsigned int number_of_partition_bins = 5;unsigned int number_of_rotations = 3;pcl::search::KdTree<pcl::PointXYZ>::Ptr search_method (new pcl::search::KdTree<pcl::PointXYZ>);search_method->setInputCloud (cloud);pcl::ROPSEstimation <pcl::PointXYZ, pcl::Histogram <135> > feature_estimator;feature_estimator.setSearchMethod (search_method);feature_estimator.setSearchSurface (cloud);feature_estimator.setInputCloud (cloud);feature_estimator.setIndices (indices);feature_estimator.setTriangles (triangles);feature_estimator.setRadiusSearch (support_radius);feature_estimator.setNumberOfPartitionBins (number_of_partition_bins);feature_estimator.setNumberOfRotations (number_of_rotations);feature_estimator.setSupportRadius (support_radius);pcl::PointCloud<pcl::Histogram <135> >::Ptr histograms (new pcl::PointCloud <pcl::Histogram <135> > ());feature_estimator.compute (*histograms);return (0);
}

文章链接:Rotational Projection Statistics for 3D Local Surface Description and Object Recognition;

A spin image is generated by projecting a local surface onto a 2D plane using a cylindrical parametrization. Similarly, a snapshot is obtained by rendering a local surface from the viewpoint which is perpendicular to the surface. Our RoPS differs from these methods in several aspects. First, RoPS represents a local surface from a set of viewpoints rather than just one view (as in the case of spin image and snapshot). Second, RoPS is associated with a unique and unambiguous LRF, and it is invariant to rotation. In contrast, spin image discards cylindrical angular information and snapshot is prone to rotation. Third, RoPS is more compact than spin image and snapshot since RoPS further encodes 2D matrices with a set of statistics. The typical lengths of RoPS, spin image and snapshot are 135, 225 and 1600, respectively (see Table 2,(Johnson and Hebert 1999)

and Malassiotis and Strintzis 2007)。

特征生成流程图:

PCL:描述三维离散点的ROPS特征(Code)相关推荐

  1. pcl点云特征提取 法线估计 PFH FPFH NARF 惯量偏心矩 RoPs特征 视点特征直方图VFH GASD特征

    pcl点云特征提取 法线估计 PFH FPFH NARF 惯量偏心矩  RoPs特征  视点特征直方图VFH GASD特征 博文末尾支持二维码赞赏哦 _ 如果要对一个三维点云进行描述,光有点云的位置是 ...

  2. pcl里面的RoPs特征(Rotational Projection Statistics)

    这次我们将使用pcl::ROPSEstimation这个类来导出点的特征. 下面是这个方法的特征提取方式.有一个网格和一个点集可以让我们来执行一些简单的操作.第一步,对于一个给定的兴趣点局部的表面将会 ...

  3. PCL点云学习 十二(RoPs 特征与惯性矩描述子)

    RoPs(Rotational Projection Statistics) pcl官网地址 来自: <pcl_点云从入门到精通>:详见这里 旋装投影特征 旋装平移不变性 抗干扰性良好 关 ...

  4. 【PCL自学:Feature5】视点特征直方图VFH概念及使用 (持续更新)

    一.视点特征直方图(VFH)原理   这篇博文描述了视点特征直方图(Viewpoint Feature Histogram[VFH])描述符,在一些其他文章也称为视角特征直方图,这是一种用于聚类识别和 ...

  5. 过程声明与同名事件或过程的描述不匹配_多特征结合的倾斜无人机影像匹配方法...

    作 者 信 息 马国宝1,俞 友2,3 (1. 青海省基础测绘院,青海 西宁 810000:2. 湖南省地质矿产勘查开发局402队,湖南 长沙 410004:3. 湖南省勘测设计院,湖南 长沙 410 ...

  6. 三维位姿:***图像特征-特征提取-姿态估计

    原文链接:http://blog.csdn.net/cloverwindy/article/details/8443296 有少量修改,如有疑问,请问原作者! 常用的图像特征有颜色特征.纹理特征.形状 ...

  7. PCL提取3D点云模型特征(3.0 FPFH快速点特征直方图)附完整代码

    一.概述 上一篇博客解释了PFH是什么以及如何利用PFH来提取点云的特征,那么讲了PFH(PCL提取3D点云模型特征(2.0 PFH点特征直方图 )附完整代码)之后肯定是要接着说FPFH的.本来想着把 ...

  8. Matlab三维离散点曲面拟合

    设有二次曲面: 其中,(x, y, z)为已知三维点坐标. 令: 解算系数矩阵A. 代码如下: function [aa,zfit] = Powerfit(data) X = data(:,1); Y ...

  9. Origin如何绘制三维离散点并拟合曲面?

    文章目录 0.引言 1.准备数据 2.三维离散点参数设置并绘图 3.拟合曲面参数设置并绘图 0.引言   在数据统计分析中,有时希望知道一个因变量在两个自变量变化情况下的变化情况,这时可以绘制散点图, ...

最新文章

  1. ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现)
  2. Eclipse中部署hadoop2.3.0
  3. 11寸笔记本电脑推荐_3000-20000元高性价比笔记本电脑推荐 含CPU天梯图、显卡天梯图 2020年11月更新...
  4. python测试udp端口_Linux系统的ECS实例中TCP/UDP端口测试及验证方法说明
  5. boost::geometry::discrete_frechet_distance用法的测试程序
  6. 《Linux内核设计与实现》读书笔记(十七)- 设备与模块
  7. coreData mapView #include
  8. yarn的配置 -- 无法将“yo”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  9. 信安教程第二版-第12章网络安全审计技术原理与应用
  10. 深度学习之于传统计算机视觉
  11. 海康信号灯控制机服务器,交通信号控制硬件设备简介
  12. J2Cache的学习
  13. 宝宝生活点滴(12.3)
  14. BlockChain学习——Hash函数碰撞概率公式及其推导
  15. CSS 伪类 after 右侧线
  16. 北大青鸟消防控制器组网_北大青鸟消防报警主机维修与调试
  17. SIFT算法原理(2)-极值点的精确定位
  18. 三子棋(井字棋) 保姆级详解
  19. SAP方丈-SAP常见问题与解决办法(转)
  20. Kubectl常用命令(三)

热门文章

  1. CCF201503-1 图像旋转(100分)
  2. MQTT-SN协议乱翻之消息格式
  3. Tasker 正则表达式测试器
  4. [安卓] 7、页面跳转和Intent简单用法
  5. 冲突域、广播域的通俗讲解
  6. 36/100. Generate Parentheses
  7. CSS样式属性单词之Left
  8. csrf-token
  9. 数据结构与算法入门---数据结构类型
  10. python之路-day18-反射