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

PCL分割——带条件的欧几里得聚簇

Conditional Euclidean Clustering

该算法与欧几里得聚簇聚簇方法流程无区别。最大的特点在于需要用户传入一个函数指针,来指明点和点之间的合并规则。但该类会在循环的过程中调用判断条件,因此聚簇性能会受到影响。

使用示例
bool enforceNormalOrIntensitySimilarity (const PointTypeFull& point_a, const PointTypeFull& point_b, float /*squared_distance*/)
{//此处是直接将点的法向量数值映射为一个3维向量,避免了一次拷贝。用于点乘计算夹角。Eigen::Map<const Eigen::Vector3f> point_a_normal = point_a.getNormalVector3fMap (), point_b_normal = point_b.getNormalVector3fMap ();if (std::abs (point_a.intensity - point_b.intensity) < 5.0f)return (true);if (std::abs (point_a_normal.dot (point_b_normal)) > std::cos (30.0f / 180.0f * static_cast<float> (M_PI)))return (true);return (false);
}int main()
{//先填充XYZI数据pcl::copyPointCloud(*cloud_out, *cloud_with_normals);//计算法向量pcl::NormalEstimation<PointTypeIO, PointTypeFull> ne;ne.setInputCloud(cloud_out);ne.setSearchMethod(search_tree);ne.setRadiusSearch(300.0);ne.compute(*cloud_with_normals);std::cerr << ">> Done: " << tt.toc() << " ms\n";pcl::ConditionalEuclideanClustering<PointTypeFull> cec(true);cec.setInputCloud(cloud_with_normals);//添加条件cec.setConditionFunction(&enforceIntensityOrNormalSimilarity);cec.setClusterTolerance(500.0);cec.setMinClusterSize(cloud_with_normals->size() / 1000);cec.setMaxClusterSize(cloud_with_normals->size() / 5);cec.segment(*clusters);cec.getRemovedClusters(small_clusters, large_clusters);std::cerr << ">> Done: " << tt.toc() << " ms\n";
}

对于条件函数的编写有着固定的格式要求。

  1. 返回值必须为bool
  2. 前两个参数必须为与分类示例模板类型相同的两个点
  3. 第三个参数必须为float用来传入两点之间的平方距离
http://www.gsyq.cn/news/103757.html

相关文章:

  • 2025年口碑不错的深圳营销策划公司推荐,看哪家专业? - 工业推荐榜
  • 太原高考冲刺集训收费多少?2025年新全日制高考冲刺辅导机构 - myqiye
  • vLLM推理引擎教程5-PagedAttention技术
  • 44、Red Hat Linux 9 系统安全配置与网络服务管理
  • 2025年阳光板温室大棚订制厂家权威推荐榜单:采光带‌/阳光板车棚‌/阳光板源头厂家精选 - 品牌推荐官
  • 2025年质量好的鼻炎洗鼻器用户好评厂家排行 - 品牌宣传支持者
  • 2025年太原高二全托/高三补习学校排行榜,自强教育优质机构 - mypinpai
  • 现在报考华为认证是否适宜?建议您先研读岗位需求。
  • 2025甘肃省博物馆附近酒店TOP5权威推荐:甄选高性价比住 - 工业品牌热点
  • 控制电机 - 感应电动机转差型矢量控制伺服模型系统探索
  • 股票搜索热度分析报告 - 2025-12-15 14:58:59
  • GBase 8s重启后连接失败?从命令失效到彻底解决的实战指南
  • 踩坑记:DBeaver连接GBase 8S时“编码转换失败”的终极解决
  • 股票搜索热度分析报告 - 2025-12-15
  • 2025年口碑好的程力广顺电源车/电源车厂家热销推荐榜(最新热卖) - 品牌宣传支持者
  • 配置rsyncd,走rsync协议(不借助ssh协议)同步文件
  • 2025年靠谱的风道电加热器优质厂家推荐榜单 - 品牌宣传支持者
  • 从 88.3% 到 9.88%:paperxie 降 AIGC / 重复率功能如何帮学术创作通过 Turnitin 检测?
  • 2025年值得信赖的专利申请行业热门榜单 - 行业平台推荐
  • 腾讯云COS和阿里云OSS在影视存储的合规性上有何差异?
  • 2025年热门的卷对卷载带厂家质量评选榜(可靠) - 品牌宣传支持者
  • 2025年评价高的环氧地坪防锈漆/金属防锈漆厂家推荐及选择指南 - 品牌宣传支持者
  • JVM 安全与沙箱深度解析
  • ChatGPT 说:ChatGPT-5.2的革新:AI如何从工具进化为智能伴侣?
  • 《把脉行业与技术趋势》-47- 《人类的四次外化:从肉身智能到类人新物种》
  • 2025年质量好的振动矿山筛网/矿山筛网信誉优质供应榜(可靠推荐) - 品牌宣传支持者
  • 以青春之我,创时代之新!DolphinDB “青年友好型企业”荣誉背后的育人实践
  • 2025年知名的冷拔丝厂家最新推荐排行榜 - 品牌宣传支持者
  • 量子傅立叶变换(QFT)与Shor算法
  • 24、嵌入式开发中的二进制工具及调试技巧