* Fixed OCL implementation of pyrlk
If prevPts size is (N, 1) (which is a default layout for converting `vector<Point2f>` to `UMat`) the `prevPts.cols == 1` and optical flow will be calculated for the first point only.
Getting `prevPts.total()` as in line 1048 is the correct way to get points count.
* fixed compilation warning (size_t to int)
Signed-off-by: Sergey Krivohatskiy <s.krivohatskiy@gmail.com>
- follows iso c++ guideline C.44
- enables default compiler-created constructors to
also be noexcept
original commit: 77e26a7db3
- handled KernelArg, Image2D
* Reduce if statement as it has the same expression on both sides of '&&'
If statement has the same expression on both sides so this can be reduce
Signed-off-by: Dan Ben Yosef <danbey@gmail.com>
* The if statement is to check width and height
* fix find zlib.so instead of zlib.a when NDK >= 19
On Android platform, `libopencv_imgcodecs.a` is built, expected to
depend on `libz.so`. However, since Android NDK r19, NDK's `libz.a`
is found instead of `libz.so`, leading to link error
(not found libz.a) on machines without same NDK version & direcotry.
Since Android NDK-r19, toolchain pieces are installed to
`$NDK/toolchains/llvm/prebuilt/<host-tag>/...`, including `libz.so`.
Also installed to old paths (`<NDK>/platforms` and `<NDK>/sysroot`)
in NDK r19, r20, r21, but since NDK 22, old paths are removed.
- https://github.com/android/ndk/wiki/Changelog-r19
- https://github.com/android/ndk/wiki/Changelog-r22
With this commit, `libz.so` can be correctly found in NDK<19 and NDK>=19.
`ZLIB_LIBRARIES` is also simplified as `z`, by appending match (regex)
patterns for new toolchain installation directory's libz.so's paths.
* simplify libz.so match pattern for abbreviation
* fix core module android arm64 build
* fix core module android build when neon is off
When building for Android ARM platform, cmake with
`-D CV_DISABLE_OPTIMIZATION=ON`, the expected behavior is
not using ARM NEON, using naive computation instead.
This commit fix the un-expected compile error for neon intrinsincs.
* [hal][neon] Optimize the v_dotprod_fast intrinsics for aarch64.
On Armv8 in AArch64 execution mode, we can skip the sequence
v<op>_<ty>(vget_high_<ty>(x), vget_high_<ty>(y))
in favour of
v<op>_high_<ty>(x, y)
This has better changes for recent compilers to use less data movement
operations and better register allocation. See for example:
https://godbolt.org/z/bPq7vd
* [hal][neon] Fix build failure on armv7.
* [hal][neon] Address review comments in PR.
PR: https://github.com/opencv/opencv/pull/19486
* [hal][neon] Define macro to check for the AArch64 execution state of Armv8.
* [hal][neon] Fix macro definition for AArch64.
The fix is needed to prevent warnings when building for Armv7.