1. 02 2月, 2023 1 次提交
    • R
      Merge pull request #23150 from savuor:port5_stereo_calib_per_obj · 23dec329
      Rostislav Vasilikhin 提交于
      ### Changes
      
      * Port of #22519 to 5.x
      * Distortion coefficients were not copied properly, fixed
      * Minor coding style chages
      
      ### Pull Request Readiness Checklist
      
      See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
      
      - [x] I agree to contribute to the project under Apache 2 License.
      - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
      - [x] The PR is proposed to the proper branch
      - [x] There is a reference to the original bug report and related work
      - [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
            Patch to opencv_extra has the same branch name.
      - [x] The feature is well documented and sample code can be built with the project CMake
      23dec329
  2. 19 9月, 2022 1 次提交
  3. 06 9月, 2022 1 次提交
  4. 28 12月, 2021 1 次提交
    • R
      Merge pull request #21018 from savuor:levmarqfromscratch · 9d6f3888
      Rostislav Vasilikhin 提交于
      New LevMarq implementation
      
      * Hash TSDF fix: apply volume pose when fetching pose
      
      * DualQuat minor fix
      
      * Pose Graph: getEdgePose(), getEdgeInfo()
      
      * debugging code for pose graph
      
      * add edge to submap
      
      * pose averaging: DualQuats instead of matrix averaging
      
      * overlapping ratio: rise it up; minor comment
      
      * remove `Submap::addEdgeToSubmap`
      
      * test_pose_graph: minor
      
      * SparseBlockMatrix: support 1xN as well as Nx1 for residual vector
      
      * small changes to old LMSolver
      
      * new LevMarq impl
      
      * Pose Graph rewritten to use new impl
      
      * solvePnP(), findHomography() and findExtrinsicCameraParams2() use new impl
      
      * estimateAffine...2D() use new impl
      
      * calibration and stereo calibration use new impl
      
      * BundleAdjusterBase::estimate() uses new impl
      
      * new LevMarq interface
      
      * PoseGraph: changing opt interface
      
      * findExtrinsicCameraParams2(): opt interface updated
      
      * HomographyRefine: opt interface updated
      
      * solvePnPRefine opt interface fixed
      
      * Affine2DRefine opt interface fixed
      
      * BundleAdjuster::estimate() opt interface fixed
      
      * calibration: opt interface fixed + code refactored a little
      
      * minor warning fixes
      
      * geodesic acceleration, Impl -> Backend rename
      
      * calcFunc() always uses probe vars
      
      * solveDecomposed, fixing negation
      
      * fixing geodesic acceleration + minors
      
      * PoseGraph exposes its optimizer now + its tests updated to check better convegence
      
      * Rosenbrock test added for LevMarq
      
      * LevMarq params upgraded
      
      * Rosenbrock can do better
      
      * fixing stereo calibration
      
      * old implementation removed (as well as debug code)
      
      * more debugging code removed
      
      * fix warnings
      
      * fixing warnings
      
      * fixing Eigen dependency
      
      * trying to fix Eigen deps
      
      * debugging code for submat is now temporary
      
      * trying to fix Eigen dependency
      
      * relax sanity check for solvePnP
      
      * relaxing sanity check even more
      
      * trying to fix Eigen dependency
      
      * warning fix
      
      * Quat<T>: fixing warnings
      
      * more warning fixes
      
      * fixed warning
      
      * fixing *KinFu OCL tests
      
      * algo params -> struct Settings
      
      * Backend moved to details
      
      * BaseLevMarq -> LevMarqBase
      
      * detail/pose_graph.hpp -> detail/optimizer.hpp
      
      * fixing include stuff for details/optimizer.hpp
      
      * doc fix
      
      * LevMarqBase rework: Settings, pImpl, Backend
      
      * Impl::settings and ::backend fix
      
      * HashTSDFGPU fix
      
      * fixing compilation
      
      * warning fix for OdometryFrameImplTMat
      
      * docs fix + compile warnings
      
      * remake: new class LevMarq with pImpl and enums, LevMarqBase => detail, no Backend class, Settings() => .cpp, Settings==() removed, Settings.set...() inlines
      
      * fixing warnings & whitespace
      9d6f3888
  5. 21 10月, 2021 1 次提交
  6. 07 6月, 2021 1 次提交
  7. 02 12月, 2020 1 次提交
  8. 29 7月, 2020 1 次提交
  9. 01 12月, 2019 1 次提交
  10. 17 9月, 2019 1 次提交
    • D
      Merge pull request #15341 from DiebBlue:is5769 · d2872afc
      Daniel Kapusi 提交于
      * issue 5769 fixed: cv::stereoRectify fails if given inliers mask of type vector<uchar>
      
      * issue5769 fix using reshape and add regression test
      
      * regression test with outlier detection, testing vector and mat data
      
      * Size comparision of wrong vector within CV_Assert in regression test corrected
      
      * cleanup test code
      d2872afc
  11. 04 6月, 2019 1 次提交
  12. 22 5月, 2019 1 次提交
  13. 15 1月, 2019 1 次提交
  14. 09 11月, 2018 1 次提交
  15. 02 11月, 2018 1 次提交
    • V
      completely new C++ persistence implementation (#13011) · 0f622206
      Vadim Pisarevsky 提交于
      * integrated the new C++ persistence; removed old persistence; most of OpenCV compiles fine! the tests have not been run yet
      
      * fixed multiple bugs in the new C++ persistence
      
      * fixed raw size of the parsed empty sequences
      
      * [temporarily] excluded obsolete applications traincascade and createsamples from build
      
      * fixed several compiler warnings and multiple test failures
      
      * undo changes in cocoa window rendering (that was fixed in another PR)
      
      * fixed more compile warnings and the remaining test failures (hopefully)
      
      * trying to fix the last little warning
      0f622206
  16. 01 11月, 2018 1 次提交
  17. 26 10月, 2018 1 次提交
    • W
      Merge pull request #12772 from xoox:calib-release-object · 31be03a8
      Wenfeng CAI 提交于
      More accurate pinhole camera calibration with imperfect planar target (#12772)
      43 commits:
      
      * Add derivatives with respect to object points
      
      Add an output parameter to calculate derivatives of image points with
      respect to 3D coordinates of object points. The output jacobian matrix
      is a 2Nx3N matrix where N is the number of points.
      
      This commit introduces incompatibility to old function signature.
      
      * Set zero for dpdo matrix before using
      
      dpdo is a sparse matrix with only non-zero value close to major
      diagonal. Set it to zero because only elements near major diagonal are
      computed.
      
      * Add jacobian columns to projectPoints()
      
      The output jacobian matrix of derivatives with respect to coordinates of
      3D object points are added. This might break callers who assume the
      columns of jacobian matrix.
      
      * Adapt test code to updated project functions
      
      The test cases for projectPoints() and cvProjectPoints2() are updated to
      fit new function signatures.
      
      * Add accuracy test code for dpdo
      
      * Add badarg test for dpdo
      
      * Add new enum item for new calibration method
      
      CALIB_RELEASE_OBJECT is used to whether to release 3D coordinates of
      object points. The method was proposed in: K. H. Strobl and G. Hirzinger.
      "More Accurate Pinhole Camera Calibration with Imperfect Planar Target".
      In Proceedings of the IEEE International Conference on Computer Vision
      (ICCV 2011), 1st IEEE Workshop on Challenges and Opportunities in Robot
      Perception, Barcelona, Spain, pp. 1068-1075, November 2011.
      
      * Add releasing object method into internal function
      
      It's a simple extension of the standard calibration scheme. We choose to
      fix the first and last object point and a user-selected fixed point.
      
      * Add interfaces for extended calibration method
      
      * Refine document for calibrateCamera()
      
      When releasing object points, only the z coordinates of the
      objectPoints[0].back is fixed.
      
      * Add link to strobl2011iccv paper
      
      * Improve documentation for calibrateCamera()
      
      * Add implementations of wrapping calibrateCamera()
      
      * Add checking for params of new calibration method
      
      If input parameters are not qualified, then fall back to standard
      calibration method.
      
      * Add camera calibration method of releasing object
      
      The current implementation is equal to or better than
      https://github.com/xoox/calibrel
      
      * Update doc for CALIB_RELEASE_OBJECT
      
      CALIB_USE_QR or CALIB_USE_LU could be used for faster calibration with
      potentially less precise and less stable in some rare cases.
      
      * Add RELEASE_OBJECT calibration to tutorial code
      
      To select the calibration method of releasing object points, a command
      line parameter `-d=<number>` should be provided.
      
      * Update tutorial doc for camera_calibration
      
      If the method of releasing object points is merged into OpenCV. It will
      be expected to be firstly released in 4.1, I think.
      
      * Reduce epsilon for cornerSubPix()
      
      Epsilon of 0.1 is a bigger one. Preciser corner positions are required
      with calibration method of releasing object.
      
      * Refine camera calibration tutorial
      
      The hypothesis coordinates are used to indicate which distance must be
      measured between two specified object points.
      
      * Update sample calibration code method selection
      
      Similar to camera_calibration tutorial application, a command line
      argument `-dt=<number>` is used to select the calibration method.
      
      * Add guard to flags of cvCalibrateCamera2()
      
      cvCalibrateCamera2() doesn't accept CALIB_RELEASE_OBJECT unless overload
      interface is added in the future.
      
      * Simplify fallback when iFixedPoint is out of range
      
      * Refactor projectPoints() to keep compatibilities
      
      * Fix arg string "Bad rvecs header"
      
      * Read calibration flags from test data files
      
      Instead of being hard coded into source file, the calibration flags will
      be read from test data files.
      opencv_extra/testdata/cv/cameracalibration/calib?.dat must be sync with
      the test code.
      
      * Add new C interface of cvCalibrateCamera4()
      
      With this new added C interface, the extended calibration method with
      CALIB_RELEASE_OBJECT can be called by C API.
      
      * Add regression test of extended calibration method
      
      It has been tested with new added test data in xoox:calib-release-object
      branch of opencv_extra.
      
      * Fix assertion in test_cameracalibration.cpp
      
      The total number of refined 3D object coordinates is checked.
      
      * Add checker for iFixedPoint in cvCalibrateCamera4
      
      If iFixedPoint is out of rational range, fall back to standard method.
      
      * Fix documentation for overloaded calibrateCamera()
      
      * Remove calibration flag of CALIB_RELEASE_OBJECT
      
      The method selection is based on the range of the index of fixed point.
      For minus values, standard calibration method will be chosen.  Values in
      a rational range will make the object-releasing calibration method
      selected.
      
      * Use new interfaces instead of function overload
      
      Existing interfaces are preserved and new interfaces are added. Since
      most part of the code base are shared, calibrateCamera() is now a
      wrapper function of calibrateCameraRO().
      
      * Fix exported name of calibrateCameraRO()
      
      * Update documentation for calibrateCameraRO()
      
      The circumstances where this method is mostly helpful are described.
      
      * Add note on the rigidity of the calibration target
      
      * Update documentation for calibrateCameraRO()
      
      It is clarified that iFixedPoint is used as a switch to select
      calibration method. If input data are not qualified, exceptions will be
      thrown instead of fallback scheme.
      
      * Clarify iFixedPoint as switch and remove fallback
      
      iFixedPoint is now used as a switch for calibration method selection. No
      fallback scheme is utilized anymore. If the input data are not
      qualified, exceptions will be thrown.
      
      * Add badarg test for object-releasing method
      
      * Fix document format of sample list
      
      List items of same level should be indented the same way. Otherwise they
      will be formatted as nested lists by Doxygen.
      
      * Add brief intro for objectPoints and imagePoints
      
      * Sync tutorial to sample calibration code
      
      * Update tutorial compatibility version to 4.0
      31be03a8
  18. 06 9月, 2018 1 次提交
  19. 05 7月, 2018 1 次提交
  20. 15 2月, 2018 1 次提交
  21. 04 2月, 2018 1 次提交
    • A
      ts: refactor OpenCV tests · 4a297a24
      Alexander Alekhin 提交于
      - removed tr1 usage (dropped in C++17)
      - moved includes of vector/map/iostream/limits into ts.hpp
      - require opencv_test + anonymous namespace (added compile check)
      - fixed norm() usage (must be from cvtest::norm for checks) and other conflict functions
      - added missing license headers
      4a297a24
  22. 27 1月, 2018 1 次提交
    • P
      Merge pull request #10667 from paroj:stereo_calib_ex · 203dc3bb
      Pavel Rojtberg 提交于
       calib3d: add stereoCalibrateExtended (#10667)
      
      * cvCalibrateCamera2Internal: simplify per view error computation
      
      * calib3d: add stereoCalibrateExtended
      
      - allow CALIB_USE_EXTRINSIC_GUESS
      - returns per view errors
      
      * calib3d: add stereoCalibrateExtended test
      203dc3bb
  23. 13 12月, 2017 1 次提交
  24. 01 9月, 2017 1 次提交
  25. 18 4月, 2017 1 次提交
  26. 22 12月, 2016 1 次提交
  27. 18 11月, 2016 1 次提交
  28. 20 10月, 2016 1 次提交
  29. 21 7月, 2016 1 次提交
  30. 19 7月, 2016 1 次提交
  31. 07 6月, 2016 1 次提交
  32. 27 4月, 2016 1 次提交
  33. 07 3月, 2016 1 次提交
  34. 17 11月, 2015 1 次提交
  35. 23 5月, 2015 2 次提交
  36. 24 4月, 2015 1 次提交
  37. 13 8月, 2014 1 次提交
    • A
      Several type of formal refactoring: · 8a4a1bb0
      Adil Ibragimov 提交于
      1. someMatrix.data -> someMatrix.prt()
      2. someMatrix.data + someMatrix.step * lineIndex -> someMatrix.ptr( lineIndex )
      3. (SomeType*) someMatrix.data -> someMatrix.ptr<SomeType>()
      4. someMatrix.data -> !someMatrix.empty() ( or !someMatrix.data -> someMatrix.empty() ) in logical expressions
      8a4a1bb0
  38. 09 4月, 2014 1 次提交
  39. 08 4月, 2014 1 次提交