* 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
Fix implicit conversion from array to scalar in python bindings
* Fix wrong conversion behavior for primitive types
- Introduce ArgTypeInfo namedtuple instead of plain tuple.
If strict conversion parameter for type is set to true, it is
handled like object argument in PyArg_ParseTupleAndKeywords and
converted to concrete type with the appropriate pyopencv_to function
call.
- Remove deadcode and unused variables.
- Fix implicit conversion from numpy array with 1 element to scalar
- Fix narrowing conversion to size_t type.
* Fix wrong conversion behavior for primitive types
- Introduce ArgTypeInfo namedtuple instead of plain tuple.
If strict conversion parameter for type is set to true, it is
handled like object argument in PyArg_ParseTupleAndKeywords and
converted to concrete type with the appropriate pyopencv_to function
call.
- Remove deadcode and unused variables.
- Fix implicit conversion from numpy array with 1 element to scalar
- Fix narrowing conversion to size_t type.·
- Enable tests with wrong conversion behavior
- Restrict passing None as value
- Restrict bool to integer/floating types conversion
* Add PyIntType support for Python 2
* Remove possible narrowing conversion of size_t
* Bindings conversion update
- Remove unused macro
- Add better conversion for types to numpy types descriptors
- Add argument name to fail messages
- NoneType treated as a valid argument. Better handling will be added
as a standalone patch
* Add descriptor specialization for size_t
* Add check for signed to unsigned integer conversion safety
- If signed integer is positive it can be safely converted
to unsigned
- Add check for plain python 2 objects
- Add check for numpy scalars
- Add simple type_traits implementation for better code style
* Resolve type "overflow" false negative in safe casting check
- Move type_traits to separate header
* Add copyright message to type_traits.hpp
* Limit conversion scope for integral numpy types
- Made canBeSafelyCasted specialized only for size_t, so
type_traits header became unused and was removed.
- Added clarification about descriptor pointer
Fix cudacodec python
* Add python bindings to cudacodec.
* Allow args with CV_OUT GpuMat& or CV_OUT cuda::GpuMat& to generate python bindings that allow the argument to be an optional output in the same way as OutputArray.
* Add wrapper flag to indicate that an OutputArray is a GpuMat.
* python: drop CV_GPU, extra checks in test
* Remove "cuda::GpuMat" check rom python parser
Tests for argument conversion of Python bindings generator
* Tests for parsing elemental types from Python bindings
- Add positive and negative tests for int, float, double, size_t,
const char*, bool.
- Tests with wrong conversion behavior are skipped.
* Move implicit conversion of bool to integer/floating types to wrong
conversion behavior.
* 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
[evolution] Stitching for OpenCV 4.0
* stitching: wrap Stitcher::create for bindings
* provide method for consistent stitcher usage across languages
* samples: add python stitching sample
* port cpp stitching sample to python
* stitching: consolidate Stitcher create methods
* remove Stitcher::createDefault, it returns Stitcher, not Ptr<Stitcher> -> inconsistent API
* deprecate cv::createStitcher and cv::createStitcherScans in favor of Stitcher::create
* stitching: avoid anonymous enum in Stitcher
* ORIG_RESOL should be double
* add documentatiton
* stitching: improve documentation in Stitcher
* stitching: expose estimator in Stitcher
* remove ABI hack
* stitching: drop try_use_gpu flag
* OCL will be used automatically through T-API in OCL-enable paths
* CUDA won't be used unless user sets CUDA-enabled classes manually
* stitching: drop FeaturesFinder
* use Feature2D instead of FeaturesFinder
* interoperability with features2d module
* detach from dependency on xfeatures2d
* features2d: fix compute and detect to work with UMat vectors
* correctly pass UMats as UMats to allow OCL paths
* support vector of UMats as output arg
* stitching: use nearest interpolation for resizing masks
* fix warnings
* Remove isIntel check from deep learning layers
* Remove fp16->fp32 fallbacks where it's not necessary
* Fix Kernel::run to prevent localsize > globalsize
* Add Python support for error message handlers.
* Move the static variable to the only function that uses it.
* Remove the optional param (user data), since this can already be handled by closures.
* Correct the help string.
* python: added redirectError test
Tests are usually lauched from source directory, so additional unnecessary
files should be eliminated.
Alternative ways (command line):
- python -B ...
- PYTHONDONTWRITEBYTECODE=1 python ...
- fixed uninitialized memory access and memory leaks
- extracted several code blocks to separate functions
- updated part of algorithm to use cv::Mat instead of CvMat and IplImage
1. if a component's variation is a global minimum than it should be a local minimum
2. for the small image with invert and blur, the MSERs number should be 20
- cv2.UMat implemented - python thin wrapper for UMat
- no implicit copy from GPU to Host done, resulting UMat can be passed to next function without overhead
- cv2.UMat.get() - to fetch data to Host
- new tests covers: ORB, BFMatcher, goodFeaturesToTrack, calcOpticalFlowPyrLK
Add Python 3 support to the Python test.py script.
The print function is used in place of the print statement.
The urlopen function has been moved to urllib.request in Python 3, so
attempt to import it from either location.
TestCase.assert_() has been deprecated in place of
TestCase.assertTrue().
The tests all pass in both Python 2 and 3.