Add support for 3D point cloud segmentation, using the USAC framework.
* Modify the RANSAC framework in usac such that RANSAC can be used in 3D point cloud segmentation.
* 1. Add support for 3D point cloud segmentation, using the USAC framework.
2. Add solvers, error estimators for plane model and sphere model.
* Added code samples to the comments of class SACSegmentation.
* 1. Update the segment interface parameters of SACSegmentation.
2. Fix some errors in variable naming.
* Add tests for plane detection.
* 1. Add tests for sphere segmentation.
2. Fix some bugs found by tests.
3. Rename "segmentation" to "sac segmentation".
4. Rename "detect" to "segment".
TODO: Too much duplicate code, the structure of the test needs to be rebuilt.
* 1. Use SIMD acceleration for plane model and sphere model error estimation.
2. Optimize the RansacQualityImpl#getScore function to avoid multiple calls to the error#getError function.
3. Fix a warning in test_sac_segmentation.cpp.
* 1. Fix the warning of ModelConstraintFunction ambiguity.
2. Fix warning: no previous declaration for'void cv::usac::modelParamsToUsacConfig(cv::Ptr<cv::usac::SimpleUsacConfig>&, const cv::Ptr<const cv::usac::Model>& )
* Fix a warning in test_sac_segmentation.cpp about direct comparison of different types of data.
* Add code comments related to the interpretation of model coefficients.
* Update the use of custom model constraint functions.
* Simplified test code structure.
* Update the method of checking plane models.
* Delete test for cylinder.
* Add some comments about UniversalRANSAC.
* 1. The RANSAC paper in the code comments is referenced using the bibtex format.
2. The sample code in the code comments is replaced using @snippet.
3. Change the public API class SACSegmentation to interface.
4. Clean up the old useless code.
* fix warning(no previous declaration) in 3d_sac_segmentation.cpp.
* Fix compilation errors caused by 3d_sac_segmentation.cpp.
* Move the function sacModelMinimumSampleSize() from ptcloud.hpp to sac_segmentation.cpp.
* 1. Change the interface for setting the number of threads to the interface for setting whether to be parallel.
2. Move interface implementation code in ptcloud_utils.hpp to ptcloud_utils.cpp.
* SACSegmentation no longer inherits Algorithm.
* Add the constructor and destructor of SACSegmentation.
* 1. For the declaration of the common API, the prefix and suffix of the parameter names no longer contain underscores.
2. Rename the function _getMatFromInputArray -> getPointsMatFromInputArray.
3. Change part of CV_CheckDepth to CV_CheckDepthEQ.
4. Remove the doxygen flag from the source code.
5. Update the loop termination condition of SIMD in the point cloud section of 3D module.
* fix warning: passing 'bool' chooses 'int' over 'size_t {aka unsigned int}' .
* fix warning: passing 'bool' chooses 'int' over 'size_t {aka unsigned int}' .
- allow installing samples sources on all platforms
even if BUILD_EXAMPLES is disabled, fixed minor
issues in sources installation process
- use 'example_<group>_<name>' scheme for target and binary file naming
- use single function for sample executable creation
* Add a new interface for hough transform
* Fixed warning code
* Fix HoughLinesUsingSetOfPoints based on HoughLinesStandard
* Delete memset
* Rename HoughLinesUsingSetOfPoints and add common function
* Fix test error
* Change static function name
* Change using CV_Assert instead of if-block and add integer test case
* I solve the conflict and delete 'std :: tr1' and changed it to use 'tuple'
* I deleted std::tr1::get and changed int to use 'get'
* Fixed sample code
* revert test_main.cpp
* Delete sample code in comment and add snippets
* Change file name
* Delete static function
* Fixed build error