Crosscorr cleanup (#14936)
* Simplify code for convolution destination type/size
For the 2d filter code, destination size equals source size, and the
crossCorr function even (re-)creates the output matrix with the given size.
The number of channels also have to match. The destination type() is the
one used to create the output matrix, so we can use its type() here.
This is a preparatory patch.
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
* Remove redundant destination size and type parameters from crossCorr
All calling sites of crossCorr already use (...,
mat, mat.size(), mat.type(), ...), so the parameters are redundant.
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Due to the explicitly declared copy constructor Vec<T, n>::Vec(Vec <T,n>&)
GCC 9 warns if there is no assignment operator, as having one typically
requires the other (rule-of-three, constructor/desctructor/assginment).
As the values are just a plain array the default assignment operator does
the right thing. Tell the compiler explicitly to default it.
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
- builds with CMAKE_SKIP_RPATH=ON should properly find project .so files from <build>/lib directory
- $ORIGIN doesn't work properly in cross-compilation mode
G-API: Parameterized render tests (#14892)
* Init commit
* Add mat size as test parameter
* Add test for text render
* Add test for rect render
* Add tests for line and circle
* Remove old render tests
* Init output mats
* Remove methods input arguments
* Add comment about data loss in BGR2NV12 conversion
* Add edge test cases
* Replace default color for out mats black -> white
In case OPENCV_INCLUDE_INSTALL_PATH is absolute (i.e. starts with a "/"),
the path ends up with a double "/".
While this is mostly equivalent to a single slash, it may have a nasty
side effect when:
- OpenCV_INSTALL_PATH is empty
- OPENCV_INCLUDE_INSTALL_PATH is "/usr/include"
- the calling build script uses "-isystem" to specify the path to the
headers of dependencies (to avoid warnings)
Specifying "-isystem /usr/include" breaks the path ordering, and GCC can
no longer find its "stdlib.h", thus CMake filters such statements.
Unfortunately it fails to do so when using "//usr/include".
It is perfectly possible to compile ARM binaries on Aarch64. Generalize
the code to no only swap X86 with X86_64, but also ARM and AARCH64.
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
G-API: Introduce new approach to write accuracy tests (#14757)
* G-API: Introduce new common accuracy test fixture
* Enable Range<> to Seq<> implicit conversion
* Fix shadowing parameters
* Update license headers
* Rename ALIGNED_TYPE to SAME_TYPE
* Move MkRange to tests
* Fix TODO(agolubev) in test instantiations
* Squash simple fixture declarations in one line
* Remove unused line
* Fix Windows issues with macro expansion
* Choose between 1 or 2 matrix initialization
* Redesign common class behavior
Use "views" for GetParam() provided by GTest
base class instead of doing segregation
(with copy!) of common and specific parameters:
request common or specific parameter directly
by index from GetParam()-returned parameters
* Refine user-level API and usage of new test model
* Fix -fpermissive errors
* Remove unnecessary init calls
* Replace GCompileArgs member variable with func ptr
* Rename initMatsRandN to make its behavior explicit
Rename initMatsRandN to initMatrixRandN to eliminate confusion:
initMatsRandN only initialized first matrix (similarly to
initMatrixRandU)
* Fix common of initNothing
* Update copyright dates in missed files
* Add check for specific parameters
* Fix coment stlye