特征点(9)

NARF特征点:深度突变位置进行边缘检测、测度表面变化的系数及主方向;

Harris特征点:2D采用图像梯度,而3D采用点云表面法向量;

……

深度图像提取NARF特征点

//深度图像边缘提取器
pcl::RangeImageBorderExtractor range_image_border_extractor;
//narf特征点
pcl::NarfKeypoint narf_keypoint_detector(&range_image_border_extractor);
//输入深度图像
narf_keypoint_detector.setRangeImage(&range_image);
//计算特征点索引
pcl::PointCloud<int> keypoint_indices;
narf_keypoint_detector.compute(keypoint_indices);

SIFT特征点提取

//头文件
#include <pcl/keypoints/sift_keypoint.h>

//创建SIFT关键点
pcl::SIFTKeypoint<pcl::PointXYZ,pcl::PointWithScale> sift;
pcl::PointCloud<pcl::PointWithScale> result;
//输入点云
sift.setInputCloud(cloud);
//创建kd树
pcl::search::KdTree<pcl::PointXYZ>::Ptr kdtree(new pcl::search::KdTree<pcl::PointXYZ>());
//kd树输入SIFT
sift.setSearchMethod(kdtree);
//设置搜索的尺度范围
sift.setScales(min_scale,n_octaves,n_scales_per_octave);
//设置特征点检测阈值
sift.setMinimumContrast(min_contrast);
//SIFT特征提取结果
copyPointCloud(result,*cloud_sift);

Harris特征点提取

//头文件
#include <pcl/keypoints/harris_3D.h>

//声明harris特征点与检测器
pcl::PointCloud<pcl::PointXYZI>::Ptr harris_keypoints(new pcl::PointCloud<pcl::PointXYZI>());
pcl::HarrisKeyPoint3D<pcl::PointXYZ,pcl::PointXYZI,pcl::Normal> *harris_detector = new pcl::HarrisKeypoint3D<pcl::PointXYZ,pcl::PointXYZI,pcl::Normal>;

//设置harris提取参数
harris_detector->setRadius(0.1f);
harris_detector->setRadiusSearch(0.1f);
harris_detector->setInputCloud(cloud);

//计算特征点
harris_detector->compute(*harris_keypoints);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值