PointCloudLibrary/pcl

IntegralImageNormaEstimation could/should return signed curvature

开放

#2,289 创建于 2018年4月26日

 (2 条评论) (0 个反应) (0 位负责人)C++ (4,506 个派生)batch import
good first issuekind: proposalkind: todomodule: features

仓库指标

星标
 (9,023 个星标)
PR 合并指标
 (平均合并 8天 7小时) (30 天内合并 3 个 PR)

描述

Your Environment

  • Operating System and version: Ubuntu 18.04
  • Compiler: gcc 7.3
  • PCL Version: 1.8.1 & trunk

Context

IntegralImageNormalEstimation computes curvature of the surface when used with normal_estimation_method=COVARIANCE_MATRIX. It does not provide the information about the direction of curvature (towards the normal or away from it) as the sign is discarded - https://github.com/PointCloudLibrary/pcl/blob/9084aec8cdd4bc040f24193b5a767d8dfe153299/features/include/pcl/features/impl/integral_image_normal.hpp#L247 (note the fabsf). In my application (height map), this information is important for further processing (distinguising valleys from hills).

Expected Behavior

I am proposing to make the curvature optionally signed, by adding a flag (false by default, not to break existing code) which would keep curvature sign, plus take in account whether the normal was flipped (in that case, curvature would have to be negated to be consistent).

Current Behavior

Sign of curvature is currently discarded by the fabsf as explained above.

Possible Solution

I suggest I will do a PR to implement this, but I would like to have opinion/guidance from upstream as to whether the chane is mergeable or I better subclass IntegralImageNormalEstimation and keep using that one in my project. Thanks!

贡献者指南