1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-30 15:53:03 +04:00

Merge pull request #18790 from OrestChura:oc/fitLine

[G-API]: fitLine() Standard Kernel Implementation

* fitLine API (Mat, 32S, 32F) (2D, 3D)

* Complete fitLine kernel & accuracy tests
 - initialization for vectors of cv::Point and Mats via vectors added
 - comparison functions for Vec<T, n> added:
   - straight average difference comparison
   - comparison by equasion for 2d line
 - stream overload for cv::DistanceTypes added

* Fix precommit warnings

* Fix docs

* Address comments
Try to fix warning

* Disable warning in tests
This commit is contained in:
Orest Chura
2020-11-17 18:59:59 +03:00
committed by GitHub
parent b866d0dc38
commit 2c6a2f0381
7 changed files with 815 additions and 1 deletions
@@ -337,6 +337,74 @@ INSTANTIATE_TEST_CASE_P(BoundingRectVector32STestCPU, BoundingRectVector32STest,
Values(IMGPROC_CPU),
Values(IoUToleranceRect(1e-5).to_compare_obj())));
INSTANTIATE_TEST_CASE_P(FitLine2DMatVectorTestCPU, FitLine2DMatVectorTest,
Combine(Values(CV_8U, CV_8S, CV_16U, CV_16S,
CV_32S, CV_32F, CV_64F),
Values(cv::Size(8, 0), cv::Size(1024, 0)),
Values(-1),
Values(IMGPROC_CPU),
Values(RelDiffToleranceVec<float, 4>(0.01).to_compare_obj()),
Values(DIST_L1, DIST_L2, DIST_L12, DIST_FAIR,
DIST_WELSCH, DIST_HUBER)));
INSTANTIATE_TEST_CASE_P(FitLine2DVector32STestCPU, FitLine2DVector32STest,
Combine(Values(-1),
Values(cv::Size(8, 0)),
Values(-1),
Values(IMGPROC_CPU),
Values(RelDiffToleranceVec<float, 4>(0.01).to_compare_obj()),
Values(DIST_L1)));
INSTANTIATE_TEST_CASE_P(FitLine2DVector32FTestCPU, FitLine2DVector32FTest,
Combine(Values(-1),
Values(cv::Size(8, 0)),
Values(-1),
Values(IMGPROC_CPU),
Values(RelDiffToleranceVec<float, 4>(0.01).to_compare_obj()),
Values(DIST_L1)));
INSTANTIATE_TEST_CASE_P(FitLine2DVector64FTestCPU, FitLine2DVector64FTest,
Combine(Values(-1),
Values(cv::Size(8, 0)),
Values(-1),
Values(IMGPROC_CPU),
Values(RelDiffToleranceVec<float, 4>(0.01).to_compare_obj()),
Values(DIST_L1)));
INSTANTIATE_TEST_CASE_P(FitLine3DMatVectorTestCPU, FitLine3DMatVectorTest,
Combine(Values(CV_8UC1, CV_8SC1, CV_16UC1, CV_16SC1,
CV_32SC1, CV_32FC1, CV_64FC1),
Values(cv::Size(8, 0), cv::Size(1024, 0)),
Values(-1),
Values(IMGPROC_CPU),
Values(RelDiffToleranceVec<float, 6>(0.01).to_compare_obj()),
Values(DIST_L1, DIST_L2, DIST_L12, DIST_FAIR,
DIST_WELSCH, DIST_HUBER)));
INSTANTIATE_TEST_CASE_P(FitLine3DVector32STestCPU, FitLine3DVector32STest,
Combine(Values(-1),
Values(cv::Size(8, 0)),
Values(-1),
Values(IMGPROC_CPU),
Values(RelDiffToleranceVec<float, 6>(0.01).to_compare_obj()),
Values(DIST_L1)));
INSTANTIATE_TEST_CASE_P(FitLine3DVector32FTestCPU, FitLine3DVector32FTest,
Combine(Values(-1),
Values(cv::Size(8, 0)),
Values(-1),
Values(IMGPROC_CPU),
Values(RelDiffToleranceVec<float, 6>(0.01).to_compare_obj()),
Values(DIST_L1)));
INSTANTIATE_TEST_CASE_P(FitLine3DVector64FTestCPU, FitLine3DVector64FTest,
Combine(Values(-1),
Values(cv::Size(8, 0)),
Values(-1),
Values(IMGPROC_CPU),
Values(RelDiffToleranceVec<float, 6>(0.01).to_compare_obj()),
Values(DIST_L1)));
INSTANTIATE_TEST_CASE_P(BGR2RGBTestCPU, BGR2RGBTest,
Combine(Values(CV_8UC3),
Values(cv::Size(1280, 720),