点云场景中进行物体识别,使用全局特征的方法严重依赖于点云分割,难以适应杂乱场景。使用局部特征,即对点云进行提取类似于3D SURF、ROPS之类的局部特征,需要寻找离散点云块的局部显著性。

点云的基本局部显著性有某一点处的曲率。

一、几何尺寸

可表述为显著性曲率的曲率阈值与物体的几何大小有关。

                

典型三维模型Dragon和ball两个物体,ball也可以进行三维剖分,但其三维剖分没有任何几何意义,而deagon的三维剖分有特异性。

二、无规则三角化

参考PCL官方网站链接:Fast triangulation of unordered point clouds

代码:

#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/features/normal_3d.h>
#include <pcl/surface/gp3.h>int
main (int argc, char** argv)
{// Load input file into a PointCloud<T> with an appropriate typepcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);pcl::PCLPointCloud2 cloud_blob;pcl::io::loadPCDFile ("bun0.pcd", cloud_blob);pcl::fromPCLPointCloud2 (cloud_blob, *cloud);//* the data should be available in cloud// Normal estimation*pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> n;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);n.setInputCloud (cloud);n.setSearchMethod (tree);n.setKSearch (20);n.compute (*normals);//* normals should not contain the point normals + surface curvatures// Concatenate the XYZ and normal fields*pcl::PointCloud<pcl::PointNormal>::Ptr cloud_with_normals (new pcl::PointCloud<pcl::PointNormal>);pcl::concatenateFields (*cloud, *normals, *cloud_with_normals);//* cloud_with_normals = cloud + normals// Create search tree*pcl::search::KdTree<pcl::PointNormal>::Ptr tree2 (new pcl::search::KdTree<pcl::PointNormal>);tree2->setInputCloud (cloud_with_normals);// Initialize objectspcl::GreedyProjectionTriangulation<pcl::PointNormal> gp3;pcl::PolygonMesh triangles;// Set the maximum distance between connected points (maximum edge length)gp3.setSearchRadius (0.025);// Set typical values for the parametersgp3.setMu (2.5);gp3.setMaximumNearestNeighbors (100);gp3.setMaximumSurfaceAngle(M_PI/4); // 45 degreesgp3.setMinimumAngle(M_PI/18); // 10 degreesgp3.setMaximumAngle(2*M_PI/3); // 120 degreesgp3.setNormalConsistency(false);// Get resultgp3.setInputCloud (cloud_with_normals);gp3.setSearchMethod (tree2);gp3.reconstruct (triangles);// Additional vertex informationstd::vector<int> parts = gp3.getPartIDs();std::vector<int> states = gp3.getPointStates();// Finishreturn (0);
}

图形效果:

PCL: 根据几何规则的曲面剖分-贪婪法表面重建三角网格相关推荐

  1. OpenCASCADE绘制测试线束:几何命令之曲面创建

    OpenCASCADE绘制测试线束:几何命令之曲面创建 曲面创建 plane cylinder cone sphere torus beziersurf bsplinesurf, upbsplines ...

  2. 第1-2课:算法设计常用思想之贪婪法

    算法作为智力活动的结果,并不是随机头脑风暴活动的产物,虽然因人而异,会有不同的结果,但是基本上它应该是遵循一定规律的活动结果.首先,它需要一些基础性的知识作为这种智力活动的着力点,比如相关领域的数学知 ...

  3. 几何实体图形保存成stl格式的ascII和二进制文。用matlab语言读入文件,给三角网格坐标值乘以2,并保存到另一stl文件。输出完成工作所用的执行时间

    1.题目: CAD/CAM软件生成几何实体图形,图形形状不限,但图形需包含曲面,分别保存成stl格式的ascII和二进制文.用matlab语言读入文件,给所有三角网格坐标值乘以2,并保存到另一stl文 ...

  4. 算法设计思想(2)— 贪婪法

    1. 贪婪法定义 贪婪法,又称贪心算法,是寻找最优解问题的常用方法,这种方法模式一般将求解过程分成若干个步骤,但每个步骤都应用贪心原则,选取当前状态下最好的或最优的选择(局部最有利的选择),并以此希望 ...

  5. 1-2、算法设计常用思想之贪婪法

    文章内容来自王晓华老师 贪心算法,是寻找最优解问题的常用方法 这种方法模式一般将求解过程分成若干个步骤,但每个步骤都应用贪心原则,选取当前状态下最好的或最优的选择(局部最有利的选择),并以此希望最后堆 ...

  6. 数字几何处理作业1:编程实现三角网格上高斯曲率和平均曲率的计算编程部分

    三.编程 1.代码 用的是中国科大傅孝明老师的框架:框架下载及配置运行 (1)在哪儿添加代码 梳理框架的结构后,在MeshViewerWidget.中添加求解曲率的函数,并在MainViewerWid ...

  7. 三角网格模型及基于RBF隐曲面方程求解的曲面重建

    资料来源:径向基函数和神经网络技术在逆向工程中的应用研究(博士论文:王宏涛) RBF神经网络模型 RBF神经网络起源于数值分析中多变量插值的RBF方法,1988年Broomhead等人首先将该算法应用 ...

  8. “马的遍历”问题的贪婪法解决算法

    /**//*    标题:<<系统设计师>>应试编程实例-[递推算法程序设计]     作者:成晓旭     时间:2002年09月14日(18:20:00-20:18:00) ...

  9. 【3D】几何物体——三角网格的表示与显示(obj)

    OBJ文件格式 OBJ是一种标准的3D模型文件格式:软件:3dsMax,LightWare,Maya都支持OBJ文件的读写: OBJ是以纯文本的形式存储了模型的顶点.法线和纹理坐标和材质使用信息: 格 ...

最新文章

  1. Ceph mon节点故障处理案例分解
  2. 吃透这套架构演化图_从零搭建Web网站也不难!
  3. 根据文件名或文件扩展名获取文件的默认图标
  4. 使用PowerDesigner创建数据库表
  5. ZOJ 1410 题解
  6. js中的各种宽度计算
  7. SAP Fiori Elements List Report 里的表格类型(tableType)是如何决定出来的
  8. python求数字平均值_python 求10个数的平均数实例
  9. 【机器学习】Python 快速入门笔记
  10. 微信小程序之 3d轮播(swiper来实现)
  11. 《Windows Mobile平台应用与开发》写作工作顺利进行中
  12. LINUX虚拟机与WINDOWS主机,直接复制交换文件会有问题
  13. c语言程序设计支持win10,win tc 64位下载-wintc C语言编译器64位下载 1.9.1 win10兼容版 - 河东下载站...
  14. 通达oa考勤可以代打吗_OA让考勤更方便
  15. 读王阳明二知行合一2有感
  16. 用python写一个文字版单机斗地主
  17. windows录屏_录制视频的软件有哪些?三款软件轻松应对录屏_
  18. Ae 入门系列之八:抠像
  19. ERP中英文缩写汇总
  20. Java开源 开源工作流

热门文章

  1. 美加州希望立法叫停加密手机
  2. ibus无法出现选择框如何解决
  3. ssh无密码登录设置(centos6系统下实现)
  4. 中年女子颈肩手肿痛案
  5. js 控制 获取 dropdownlist的值
  6. Drupal Working with nodes, content types and fields
  7. 牛客 216 C 小K的疑惑
  8. iOS打包,证书配置等
  9. MyEclipse常用配置图解
  10. jetty启动源码分析