-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gsoc2023 constraint based point cloud denoising #7897
base: master
Are you sure you want to change the base?
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 <[email protected]>
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the choice of the constants motivated?
{ | ||
update_threshold = 2 * neighbor_radius; | ||
|
||
std::cout << "update threshold: " << update_threshold << "\n"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cleanup
// ---------------------------------------------------------------------------- | ||
/// \cond SKIP_IN_MANUAL | ||
|
||
namespace internal { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const&
?
VectorMap normal_map, | ||
const std::vector<typename PointRange::iterator>& neighbor_pwns, | ||
const point_type_t point_type, | ||
std::pair<Eigen::Vector3d, Eigen::Matrix3d>& eigens, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does eigens
get modified?
} | ||
|
||
// calculate diameter of point set | ||
typedef CGAL::Min_sphere_of_points_d_traits_3<Kernel,FT> Traits; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An example should not have CGAL::internal
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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