1. Add Base64 support for reading and writing XML\YML file.
The two new functions for writing:
```cpp
void cvWriteRawData_Base64(cv::FileStorage & fs, const void* _data, int
len, const char* dt);
void cvWriteMat_Base64(cv::FileStorage & fs, cv::String const & name,
cv::Mat const & mat);
```
2. Change YML file header form `YAML:1.0` to `YAML 1.0`. (standard
format)
3. Add test for Base64 part.
* check compiler more strictly
* use gcc version of fp16 conversion if it's possible (gcc 4.7 and later)
* use current SW implementation in other cases
The number of gaussians involved in a mixture is supposed
to be dynamically adjusted. After being increased, the number
of gaussians can't be reduced anymore.
It seems to be a regression as the legacy code
located in modules/legacy/src/bgfg_gaussmix.cpp allows to reduce
such number of gaussians.
* check compiler support
* check HW support before executing
* add test doing round trip conversion from / to FP32
* treat array correctly if size is not multiple of 4
* add declaration to prevent warning
* make it possible to enable fp16 on 32bit ARM
* let the conversion possible on non-supported HW, too.
* add test using both HW and SW implementation
Enable "useProvidedKeypoints" flag on cuda::ORB's detectAndCompute function in order to able to describe provided keypoints.
* additional author : Ender Tunç <endertunc@yahoo.com>
resolves#6473
* Enable "useProvidedKeypoints" flag on cuda::ORB's detectAndCompute function in order to able to describe provided keypoints.
Update for using 'const' reference to avoid array copy on each iteration.
resolves#6473
Update for 'const' reference to avoid array copy on each iteration.
This is found in the original akaze repo. Previous sub pixel localization method assumes the coordinate (0, 0) is the up-left corner of the up-left pixel. But as far as I know, opencv uses the center of the up-left corner, in this case it should be done in this way.
35aeb83a71db3dc22981