* Clean: replace C style asserts by CV_Assert and CV_DbgAssert
* Try fixing warning on Windows compilation
* Another way trying to fix warnings on Win
* Fixing warnings with some compilers:
Some compilers warn on systematic exit preventing to execute the code that follows.
This is why assert(0) that exits only in debug was working, but not CV_Assert or CV_Error
that exit both in release and debug, even if with different behavior.
In addition, other compilers complain when return 0 is removed from getKey(),
even if before we have a statement leading to systematic exit.
* Disable "unreachable code" warnings for Win compilers so we can use proper CV_Error
fix instable fisheye undistortPoints
* remove artefacts when (un)distorting fisheye images with large distortion coefficient values
* fix fisheye undistortion when theta is close to zero
* add fisheye image undistort and distort test
* Fixed type conversion warnings
* fixed trailing whitespace
Before, when maxCheck was reached in the first descent of a tree, time was still wasted parsing
the next trees till their best leaves whose points were not used at all.
Clarify component statistics documentation
* Change ConnectedComponentsTypes documentation
Change from "algorithm output formats" to "statistics" because it specifies types of statistics, not formats.
* Documentation: clarify component statistics
Explain that ConnectedComponentTypes selects a statistic.
Argument "a" is of type ElementType* that is either int* or float*, while b was double*.
Mixing types prevents the possibility to use SSE or AVX instructions.
On implementation without SIMD instructions, this doesn't show any impact on performance.
Fix cuda11
* use cudnn_version.h to detect version when it is available
* remove nppi from CUDA11
* use ocv_list_filterout
* dnn(cuda): temporary disable CUDNN 8.0
* Clean: make the use of the indices array length consistent
Either we don't want this method to be used in the future for any other node
than the root node, and so we replace indices_length by size_ and remove it as
argument, or we want to be able to use it potentially for other nodes, and
so using size_ instead of indices_length would have lead to a bug.
* Fix: b was not an address
* Fix: transpose the Flann repo commit "Fixes in accum_dist methods" from Adil Ibragimov
Avoids trying to compute log(ratio) with ratio = 0
* Fix: transpose the Flann repo commit "result_set bugfix" from Jack Rae
* Fix Jack Rae commit as the initial i - 1 index was decremented before entering the loop body
* Clean: transpose the Flann repo commit "Updated comments in lsh_index" from Richard McPherson
* Fix: Transpose the Flann repo commit "Fixing unreachable code in lsh_table.h" from hypevr
* Fix warning the same way it was done in flann standalone repo
* Change the return value in case of unsupported type
G-API Serialization routines
* Serialization backend in tests, initial version
* S11N/00: A Great Rename
- "Serialization" is too long and too error-prone to type,
so now it is renamed to "s11n" everywhere;
- Same applies to "SRLZ";
- Tests also renamed to start with 'S11N.*' (easier to run);
- Also updated copyright years in new files to 2020.
* S11N/01: Some basic interface segregation
- Moved some details (low-level functions) out of serialization.hpp;
- Introduced I::IStream and I::OStream interfaces;
- Implemented those via the existing [De]SerializationStream classes;
- Moved all operators to use interfaces instead of classes;
- Moved the htonl/ntohl handling out of operators (to the classes).
The implementation didn't change much, it is a subject to the further
refactoring
* S11N/02: Basic operator reorg, basic tests, vector support
- Reorganized operators on atomic types to follow >>/<< model
(put them closer in the code for the respective types);
- Introduce more operators for basic (scalar) types;
- Drop all vector s11n overloads -- replace with a generic
(template-based) one;
- Introduced a new test suite where low-level s11n functionality
is tested (for the basic types).
* S11N/03: Operators reorganization
- Sorted the Opaque types enum by complexity;
- Reorganized the existing operators for basic types, also ordered by
complexity;
- Organized operators in three groups (Basics, OpenCV, G-API);
- Added a generic serialization for variant<>;
- Reimplemented some of the existing operators (for OpenCV and G-API
data structures);
- Introduced new operators for cv::gimpl data types. These operators
(and so, the data structures) are not yet used in the graph
dump/reconstruction routine, it will be done as a next step.
* S11N/04: The Great Clean-up
- Drop the duplicates of GModel data structures from the
serialization, serialize the GModel data structures themselve
instead (hand-written code replaced with operators).
- Also removed usuned code for printing, etc.
* S11N/05: Internal API Clean-up
- Minimize the serialization API to just Streams and Operators;
- Refactor and fix the graph serialization (deconstruction and
reconstruction) routines, fix data addressing problems there;
- Move the serialization.[ch]pp files to the core G-API library
* S11N/06: Top-level API introduction
- !!!This is likely the most invasive commit in the series!!!
- Introduced a top-level API to serialize and deserialize a GComputation
- Extended the compiler to support both forms of a GComputation:
an expession based and a deserialized one. This has led to changes in
the cv::GComputation::Priv and in its dependent components (even the
transformation tests);
- Had to extend the kernel API (GKernel) with extra information on
operations (mainly `outMeta`) which was only available for expression
based graphs. Now the `outMeta` can be taken from kernels too (and for
the deserialized graphs it is the only way);
- Revisited the internal serialization API, had to expose previously
hidden entities (like `GSerialized`);
- Extended the serialized graph info with new details (object counter,
protocol). Added unordered_map generic serialization for that;
- Reworked the very first pipeline test to be "proper"; GREEN now, the rest
is to be reworked in the next iteration.
* S11N/07: Tests reworked
- Moved the sample pipeline tests w/serialization to
test the public API (`cv::gapi::serialize`, then
followed by `cv::gapi::deserialize<>`). All GREEN.
- As a consequence, dropped the "Serialization" test
backend as no longer necessary.
* S11N/08: Final touches
- Exposed the C++ native data types at Streams level;
- Switched the ByteMemoryIn/OutStreams to store data in `char`
internally (2x less memory for sample pipelines);
- Fixed and refactored Mat dumping to the stream;
- Renamed S11N pipeline tests to their new meaning.
* linux build fix
* fix RcDesc and int uint warnings
* more Linux build fix
* white space and virtual android error fix (attempt)
* more warnings to be fixed
* android warnings fix attempt
* one more attempt for android build fix
* android warnings one more fix
* return back override
* avoid size_t
* static deserialize
* and how do you like this, elon? anonymous namespace to fix android warning.
* static inline
* trying to fix standalone build
* mat dims fix
* fix mat r/w for standalone
Co-authored-by: Dmitry Matveev <dmitry.matveev@intel.com>
Instead of using the current dimension for which we just got a big span,
we were computing Min and Max for the previous dimension stored in cutfeat
(and using 0 instead of the dimension indice for the very first dimension
with "span > (1-eps)max_span")