Add interleaved versions of phase/cartToPolar/polarToCart #3607
This PR is for performance only (at the cost of more template code and increased GPU code size) The additional variants can help the caller skip the creation of temporary GPU mats (where memory is more likely to be a critical resource), and can even allow in-place processing. magnitude/angles/x/y are often already interleaved when dealing with DFTs.
### 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
- [ ] 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
Add python bindings to cudaobjdetect, cudawarping and cudaarithm
* Overload cudawarping functions to generate correct python bindings.
Add python wrapper to convolution funciton.
* Added shift and hog.
* Moved cuda python tests to this repo and added python bindings to SURF.
* Fix SURF documentation and allow meanshiftsegmention to create GpuMat internaly if not passed for python bindings consistency.
* Add correct cuda SURF test case.
* Fix python mog and mog2 python bindings, add tests and correct cudawarping documentation.
* Updated KeyPoints in cuda::ORB::Convert python wrapper to be an output argument.
* Add changes suggested by alalek
* Added changes suggested by asmorkalov