Stitching Detailed Tutorial Improvements
* Add Vertical Wave Correction
The user has the possibility to pass "vert" as wave_correct parameter. However, in the code "cv.detail.WAVE_CORRECT_HORIZ" ist fixed. This change proposes changes so that the wave correction is done vertically if the user passes "vert" as wave_correct parameter. The variable "do_wave_correct" is replaced by None which is passed to the variable "wave_correct" if the user chooses "no" for wave correction.
* Correct fixed conf_thresh
According to the documentation, [cv.detail.leaveBiggestComponent](https://docs.opencv.org/4.5.1/d7/d74/group__stitching__rotation.html#ga855d2fccbcfc3b3477b34d415be5e786) takes features, the pairwise_matches and the conf_threshold as input.
In the tutorial, however, conf_threshold is fixed at 0.3 even though the user can pass conf_thresh as parameter which is 1 by default. Fixing this parameter at 0.3 causes the script to include images into the panorama which are not part of it.
* Error Message for SURF if not implemented
In OpenCV 4.5.1
import cv2 as cv
cv.xfeatures2d_SURF.create
will not create an AttributeError, even if the function is excluded (no nonfree option)
In Line 305 (now 306) however ´finder = FEATURES_FIND_CHOICES[args.features]()´ will raise an
error: OpenCV(4.5.1) ..\opencv_contrib\modules\xfeatures2d\src\surf.cpp:1029: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'cv::xfeatures2d::SURF::create'
So we should check with cv.xfeatures2d_SURF.create() correctly if SURF is available
Instead of being a copy of line 76, line 79 instead correctly indicates that it will show a histogram for a gray image in curve mode, as given by the code block at line 103 referencing image "gray" instead of image "im".
Fixes the help for `--features`, previously listed all possible values as default value.
Also adds the default value to the help for two other arguments
* fixed#17044
1. fixed Python part of the tutorial about using OpenCV XML-YAML-JSON I/O functionality from C++ and Python.
2. added startWriteStruct() and endWriteStruct() methods to FileStorage
3. modifed FileStorage::write() methods to make them work well inside sequences, not only mappings.
* try to fix the doc builder
* added Python regression test for FileStorage I/O API ([TODO] iterating through long sequences can be very slow)
* fixed yaml testing
Added a sample file for qrcode detection in python
* sample python file for qrcode detection added in samples/python
* input taken using argparse and the indents were removed
* Removed unused variables
* updated the format and removed unused variables
Removed the use of global variables and used parameterised contructor instead
=set multi detection true by default
* added detection from camera
* samples(python): coding style in qrcode.py
* Add python version of panorama_stitching_rotating_camera and perspective_correction
* Updated code
* added in the docs
* added python code in the docs
* docs change
* Add java tutorial as well
* Add toggle in documentation
* Added the link for Java code
* format code
* Refactored code
Python code examples for file IO in xml and yml format
* Initial "Pythonization" of file_input_output.cpp
* Moved file_input_output.py to correct location
* Nearly done Pythonizing file_input_output.cpp
* Python equivalent of file_input_output.py created
* Started Pythonizing camera_calibration.cpp
* Completed Python tutorial/sample code for file_input_output
* Resolved whitespace issues
* Removed tabs in file_input_output.cpp
* Patched import order and wrapped code in main function
* Changed string to docstring format in help file
* Updated link to Python example code
Extend optical flow tutorial (#14314)
* extend python optical flow tutorial with cpp example code and add it to general tutorial directory
* remove unused parameters, fix comparison between signed and unsigned int
* fix hsv range problem
* switch to samples::findFile for sample file location
* switch to command line parameter for path
* remove old tutorial as in 14393
* minor fixes
Extend meanshift tutorial (#14393)
* copy original tutorial and python code
* add cpp code, fix python code
* add camshift cpp code, fix bug in meanshift code
* add description to ToC page
* fix shadowing previous local declaration
* fix grammar: with -> within
* docs: remove content of old py_meanshift tutorial, add link
* docs: replace meanshift tutorial subpage in Python tutorials
* switch to ref to fix wrong breadcrumb navigation
* switch to cmdline for path as in #14314
* Apply suggestions from code review
* order programming languages alphabetically
* Created python version of the code for the anisotropic image segmentation tutorial. Created python/cpp toggles for the markdown file.
* fix doxygen warnings
* Python wrapper for detail
* hide pyrotationwrapper
* copy code in pyopencv_rotationwarper.hpp
* move ImageFeatures MatchInfo and CameraParams in core/misc/
* add python test for detail
* move test_detail in test_stitching
* rename
The load() function returns a new object, and as such does not use the one it is called on.
This commit updates the uses of model.load in this program so it will work as intended and not throw an error.