Gsoc2023 constraint based point cloud denoising#7897
Gsoc2023 constraint based point cloud denoising#7897
Conversation
Point_set_processing_3/include/CGAL/constraint_based_smooth_point_set.h
Outdated
Show resolved
Hide resolved
…int_set.h updated copyright Co-authored-by: Sebastien Loriot <sloriot.ml@gmail.com>
|
Eigen seems to be a hard wired dependency. Is there an existing solver traits class we could use? |
| FT neighbor_radius = 0; | ||
| FT normal_threshold = 0.9 * (180/M_PI); | ||
| FT damping_factor = 3; | ||
| FT eigenvalue_threshold_nvt = 0.7; |
There was a problem hiding this comment.
Is the choice of the constants motivated?
| { | ||
| update_threshold = 2 * neighbor_radius; | ||
|
|
||
| std::cout << "update threshold: " << update_threshold << "\n"; |
| // ---------------------------------------------------------------------------- | ||
| /// \cond SKIP_IN_MANUAL | ||
|
|
||
| namespace internal { |
There was a problem hiding this comment.
As you can see above in line 20, the namespace internal is inside CGAL::Point_set_processing.
| return Vector{new_normal[0], new_normal[1], new_normal[2]}; | ||
| } | ||
|
|
||
| enum point_type_t {corner = 3, edge = 1, flat = 2}; // covm |
There was a problem hiding this comment.
The commented enum below mentions // nvt which corresponds to the function name. Is the right one used ?
| // Detects type of point by using the covariance matrix eigenvalues | ||
| template <typename Kernel> | ||
| point_type_t feature_detection( | ||
| std::pair<Eigen::Vector3d, Eigen::Matrix3d> covm_eigens |
| VectorMap normal_map, | ||
| const std::vector<typename PointRange::iterator>& neighbor_pwns, | ||
| const point_type_t point_type, | ||
| std::pair<Eigen::Vector3d, Eigen::Matrix3d>& eigens, |
| } | ||
|
|
||
| // calculate diameter of point set | ||
| typedef CGAL::Min_sphere_of_points_d_traits_3<Kernel,FT> Traits; |
There was a problem hiding this comment.
This introduces a heavy dependency. In case we have to keep it, we have to update package_info
| namespace CGAL { | ||
|
|
||
| template< class F > | ||
| struct Output_rep< ::Color, F > { |
There was a problem hiding this comment.
Should that be moved to a CGAL header ?
| namespace internal { | ||
|
|
||
| template <typename Kernel> | ||
| typename Kernel::FT measure_sphere_normal_deviation( |
There was a problem hiding this comment.
An example should not have CGAL::internal.
There was a problem hiding this comment.
In fact it is a test. But nevertheless.
William Wen's GSoC 2023 Submission
Mentor: Martin Skrodzki
Co-Mentor: Sven Oesau
Implementation of the paper "Constraint-based Point Set Denoising using Normal Voting Tensor and Restricted Quadratic Error Metrics"
Also see Issue #7748
Todo