signed

QiShunwang

“诚信为本、客户至上”

PCL(46)Harris

2021/3/21 10:08:24   来源:

/* 
3DHarris  方块体内点数量变化确定角点
  在2DHarris里,我们使用了 图像梯度构成的 协方差矩阵。 
    图像梯度。。。嗯。。。。每个像素点都有一个梯度,
    在一阶信息量的情况下描述了两个相邻像素的关系。显然这个思想可以轻易的移植到点云上来。
想象一下,如果在 点云中存在一点p
  1、在p上建立一个局部坐标系:z方向是法线方向,x,y方向和z垂直。
  2、在p上建立一个小正方体,不要太大,大概像材料力学分析应力那种就行
  3、假设点云的密度是相同的,点云是一层蒙皮,不是实心的。
  a、如果小正方体沿z方向移动,那小正方体里的点云数量应该不变
  b、如果小正方体位于边缘上,则沿边缘移动,点云数量几乎不变,沿垂直边缘方向移动,点云数量改
  c、如果小正方体位于角点上,则有两个方向都会大幅改变点云数量
  如果由法向量x,y,z构成协方差矩阵,那么它应该是一个对称矩阵。
而且特征向量有一个方向是法线方向,另外两个方向和法线垂直。
  那么直接用协方差矩阵替换掉图像里的M矩阵,就得到了点云的Harris算法。
  其中,半径r可以用来控制角点的规模
  r小,则对应的角点越尖锐(对噪声更敏感)
  r大,则可能在平缓的区域也检测出角点
./harris3d ../../Filtering/build/table_scene_lms400_inliers.pcd 
*/
#include <iostream>