opencv/samples/cpp
Ruan 80c5d18f9c
Merge pull request #21276 from No-Plane-Cannot-Be-Detected:5.x-ptcloud
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}' .
2021-12-30 15:54:06 +00:00
..
example_cmake cmake: enable C++11 implicitly 2020-02-03 17:45:37 +03:00
tutorial_code Merge pull request #21276 from No-Plane-Cannot-Be-Detected:5.x-ptcloud 2021-12-30 15:54:06 +00:00
3calibration.cpp calib3d module in opencv is split into 3 modules: 3d, calib and stereo. 2020-12-01 23:42:15 +03:00
application_trace.cpp Update Samples 2019-09-05 01:10:51 +03:00
asift.cpp calib3d module in opencv is split into 3 modules: 3d, calib and stereo. 2020-12-01 23:42:15 +03:00
bgfg_segm.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
calibration.cpp Merge branch 4.x 2021-06-04 15:18:51 +00:00
camshiftdemo.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
cloning_demo.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
cloning_gui.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
CMakeLists.txt Merge branch 4.x 2021-04-10 18:03:01 +00:00
connected_components.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
contours2.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
convexhull.cpp Update convexhull.cpp 2021-09-11 23:58:14 +03:00
cout_mat.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
create_mask.cpp Update samples 2020-07-23 20:09:37 +03:00
dbt_face_detection.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
delaunay2.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
demhist.cpp Update Samples 2019-09-05 01:10:51 +03:00
detect_blob.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-03-04 20:49:09 +00:00
detect_mser.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-03-04 20:49:09 +00:00
dft.cpp Update Samples 2019-09-05 01:10:51 +03:00
digits_lenet.cpp add OpenCV sample for digit and text recongnition, and provide multiple OCR models. 2020-08-22 01:02:13 +08:00
digits_svm.cpp Add namespace specifier for format() 2021-04-21 14:08:52 +08:00
dis_opticalflow.cpp Update samples 2019-09-20 18:03:26 +03:00
distrans.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
drawing.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
edge.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
ela.cpp Update samples 2019-09-20 18:03:26 +03:00
em.cpp Updated ml module interfaces and documentation 2015-02-17 11:46:14 +03:00
epipolar_lines.cpp calib3d module in opencv is split into 3 modules: 3d, calib and stereo. 2020-12-01 23:42:15 +03:00
essential_mat_reconstr.cpp 5.x: cleanup compatibility code (2021-10) 2021-10-20 17:40:04 +00:00
facedetect.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
facial_features.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-03-04 20:49:09 +00:00
falsecolor.cpp Merge pull request #16445 from atinfinity:fixed-typo 2020-02-16 19:16:33 +03:00
fback.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
ffilldemo.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
filestorage.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
fitellipse.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
flann_search_dataset.cpp Merge pull request #17643 from pemmanuelviel:pev--new-flann-demo 2020-08-10 13:26:40 +00:00
grabcut.cpp Updated grabcut example to show the background in a transparant way 2021-07-14 22:02:27 +02:00
image_alignment.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
imagelist_creator.cpp update cpp samples and tutorials 2016-06-26 20:55:00 +03:00
imagelist_reader.cpp Merge pull request #13188 from alalek:samples_rename 2018-11-17 00:35:05 +03:00
inpaint.cpp Update Samples 2019-09-05 01:10:51 +03:00
intelligent_scissors.cpp Merge pull request #16853 from SimpleVlad:note 2020-03-19 21:39:54 +00:00
intersectExample.cpp Update samples 2020-07-23 20:09:37 +03:00
kalman.cpp Merge pull request #20564 from AleksandrPanov:update_kalman_sample 2021-08-20 10:57:05 +00:00
kmeans.cpp Merge pull request #10258 from savuor:fix/kmeans_channels 2017-12-15 21:48:48 +03:00
laplace.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
letter_recog.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
lkdemo.cpp Merge pull request #9618 from vipinanand4:goodFeaturesToTrack_added_gradiantSize 2017-09-22 14:04:43 +00:00
logistic_regression.cpp ml: use OpenCV license header for logistic regression 2021-03-17 20:29:52 +00:00
lsd_lines.cpp restore LSD 2021-10-01 16:23:16 +03:00
mask_tmpl.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-11-17 14:17:35 +00:00
matchmethod_orb_akaze_brisk.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-03-04 20:49:09 +00:00
minarea.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
morphology2.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
neural_network.cpp Issue 6780 2016-07-07 09:29:41 +02:00
npr_demo.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
opencv_version.cpp Minor refactoring in several C++ samples: 2018-03-06 14:23:20 +03:00
pca.cpp Fix spelling typos 2019-12-27 12:46:53 +00:00
peopledetect.cpp Update Samples 2019-09-05 01:10:51 +03:00
phase_corr.cpp update samples: waitKey() usage 2016-12-15 15:39:47 +03:00
points_classifier.cpp samples: use findFile() in "cpp" 2018-11-16 18:08:22 +00:00
polar_transforms.cpp Update Samples 2019-09-05 01:10:51 +03:00
qrcode.cpp Merge pull request #15338 from rayonnant14:my_detect_and_decode_3.4 2020-01-26 22:18:42 +03:00
segment_objects.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
select3dobj.cpp Merge branch 4.x 2021-06-04 15:18:51 +00:00
simd_basic.cpp core: support SIMD intrinsics in user code 2019-07-19 20:33:32 +00:00
smiledetect.cpp Update Samples 2019-09-05 01:10:51 +03:00
squares.cpp Fix squares sample failure when a single file passed 2021-04-28 09:36:04 +03:00
stereo_calib.cpp Merge branch 4.x 2021-04-10 18:03:01 +00:00
stereo_match.cpp calib3d module in opencv is split into 3 modules: 3d, calib and stereo. 2020-12-01 23:42:15 +03:00
stitching_detailed.cpp Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2020-04-24 19:02:39 +00:00
stitching.cpp Changed sample code, fixes #18807 2020-11-14 23:29:51 +02:00
text_skewness_correction.cpp Added tutorial for text skewness correction in C++ and Python. 2020-01-23 08:24:39 +03:00
train_HOG.cpp Update train_HOG.cpp 2020-07-23 20:23:31 +03:00
train_svmsgd.cpp samples: avoid using of legacy C-like API 2018-03-26 13:42:35 +03:00
travelsalesman.cpp Fixed compilation warnings in samples: 2018-02-12 18:42:36 +03:00
tree_engine.cpp using argv[0] represent binary executable files' name in help() function 2020-02-28 20:36:56 +08:00
videocapture_basic.cpp Update videocapture_basic.cpp 2020-04-24 11:42:45 +03:00
videocapture_camera.cpp samples: videocapture_camera use VideoCapture with 0 index 2018-07-03 15:44:53 +03:00
videocapture_gphoto2_autofocus.cpp FIx misc. source and comment typos 2019-08-15 13:09:52 +03:00
videocapture_gstreamer_pipeline.cpp videoio(doc): add 'videoio_hwaccel' group, fix typos 2021-03-07 04:47:22 +00:00
videocapture_image_sequence.cpp Merge pull request #13188 from alalek:samples_rename 2018-11-17 00:35:05 +03:00
videocapture_intelperc.cpp Merge pull request #13188 from alalek:samples_rename 2018-11-17 00:35:05 +03:00
videocapture_openni.cpp Add tutorial on how to use Orbbec Astra 3D cameras 2020-11-19 13:31:22 +03:00
videocapture_starter.cpp Large update of videoio doc and samples following mshabunin comments 2016-09-09 18:46:11 +02:00
videowriter_basic.cpp samples: avoid using of legacy C-like API 2018-03-26 13:42:35 +03:00
warpPerspective_demo.cpp Update warpPerspective_demo.cpp 2020-08-03 12:14:01 +03:00
watershed.cpp Update Samples 2019-09-05 01:10:51 +03:00