Commit Graph

3472 Commits

Author SHA1 Message Date
Alexander Alekhin
dcf3d988d5 Merge pull request #8543 from csukuangfj:fix-String 2017-06-28 11:20:29 +00:00
Vadim Pisarevsky
8b3d6603d5 another round of dnn optimization (#9011)
* another round of dnn optimization:
* increased malloc alignment across OpenCV from 16 to 64 bytes to make it AVX2 and even AVX-512 friendly
* improved SIMD optimization of pooling layer, optimized average pooling
* cleaned up convolution layer implementation
* made activation layer "attacheable" to all other layers, including fully connected and addition layer.
* fixed bug in the fusion algorithm: "LayerData::consumers" should not be cleared, because it desctibes the topology.
* greatly optimized permutation layer, which improved SSD performance
* parallelized element-wise binary/ternary/... ops (sum, prod, max)

* also, added missing copyrights to many of the layer implementation files

* temporarily disabled (again) the check for intermediate blobs consistency; fixed warnings from various builders
2017-06-28 11:15:22 +03:00
Alexander Alekhin
82ec76c123 Merge pull request #8990 from mshabunin:fix-static-2 2017-06-27 14:53:26 +00:00
Alexander Alekhin
f8a75c4361 dispatch: added CV_TRY_${OPT} macro, fix dnn build
- 1: OPT is available directly or via dispatcher
- 0: optimization is not compiled at all
2017-06-27 17:05:15 +03:00
Maksim Shabunin
32d4af36e2 Fixing some static analysis issues 2017-06-27 14:30:26 +03:00
Alexander Alekhin
650830b9d6 build: eliminate warning 2017-06-27 08:16:40 +03:00
Vadim Pisarevsky
ef2e5a9f82 Merge pull request #8988 from sovrasov:repeat_src_eq_dst_fix 2017-06-26 21:58:26 +00:00
Rostislav Vasilikhin
e63feba8e2 fixed typo 2017-06-26 20:19:18 +03:00
Alexander Alekhin
006966e629 trace: initial support for code trace 2017-06-26 17:07:13 +03:00
Vladislav Sovrasov
4f9871817a core: forbid handling of the case when src=dst in cv::repeat 2017-06-26 14:02:52 +03:00
James Clarke
25020f2672 fast_math.hpp: Use __asm__ rather than asm; fixes including with -std=c99 2017-06-23 15:28:09 +01:00
Vadim Pisarevsky
fa7e7e0ff9 Merge pull request #8900 from alalek:update_android_build 2017-06-23 10:58:53 +00:00
Dmitry Kurtaev
16368a275b cmake: add Halide support (#8794) 2017-06-21 14:33:47 +03:00
Alexander Alekhin
3e3e2dd512 android: make optional "cpufeatures", build fixes for NDK r15 2017-06-21 13:34:19 +03:00
Alexander Alekhin
d3ebe665e0 core: fix IPP optimization for sortIdx 2017-06-21 03:04:16 +00:00
Alexander Alekhin
9067310166 core(test): added cv::sortIdx accuracy tests 2017-06-21 03:04:16 +00:00
Maksim Shabunin
68d01972fe Merge pull request #8883 from abratchik:DNN.java.wrappers.fix 2017-06-20 09:05:53 +00:00
abratchik
037d8fbdcd Refactor OpenCV Java Wrapping 2017-06-15 20:35:12 +04:00
Rostislav Vasilikhin
939c8e8a99 float constant replaced by int hex representations 2017-06-15 15:10:41 +03:00
Rostislav Vasilikhin
29593635ed licence updated 2017-06-14 21:20:10 +03:00
Alexander Alekhin
cf86f88c71 Merge pull request #8911 from alalek:fix_vsum4 2017-06-14 12:00:58 +00:00
Alexander Alekhin
e23b59da5c build: fix v_reduce_sum4 (requires SSE3) 2017-06-14 09:37:06 +00:00
Alexander Alekhin
9fa90c8851 Merge pull request #8899 from tomoaki0705:fixSuppressWarningsUnreachable 2017-06-14 01:07:47 +00:00
Vadim Pisarevsky
fbafc700ea added v_reduce_sum4() universal intrinsic; corrected number of threads in cv::getNumThreads() in the case of GCD 2017-06-13 18:04:00 +03:00
Tomoaki Teshima
94848a3e1f suppress unreachable code warning
- fix the define condition based on the comment
2017-06-13 08:11:04 +09:00
Alexander Alekhin
a3189e36c0 Merge pull request #8753 from RyuheiMori:fix-cpu-feature-detection-on-android 2017-06-12 16:08:08 +00:00
Alexander Alekhin
3dee87b697 update CPU detection on ANDROID patch 2017-06-11 05:06:49 +00:00
Alexander Alekhin
0213b508dc Merge pull request #8868 from alalek:fix_build_softfloat 2017-06-08 20:22:53 +00:00
Alexander Alekhin
e3c0d11b55 Merge pull request #8876 from alalek:fix_build_msvs 2017-06-08 19:53:29 +00:00
Maksim Shabunin
f71ea4dfe9 Merge pull request #8816 from mshabunin:sprintf-fix
Fixed snprintf for VS 2013 (#8816)

* Fixed snprintf for VS 2013

* snprintf: removed declaration from header, changed implementation

* cv_snprintf corrected according to comments

* update snprintf patch
2017-06-08 21:53:16 +02:00
Alexander Alekhin
5c0a287ce8 build: fix warning
C4189: 'clImageUV' : local variable is initialized but not referenced
2017-06-08 20:40:36 +03:00
Alexander Alekhin
781515c514 build: fix "ambiguous call" (MSVS2010) 2017-06-08 20:40:35 +03:00
Alexander Alekhin
71517a910a build: fix errors for MSVS2010-2013, reduce default softfloat scope 2017-06-08 01:09:21 +00:00
Alexander Alekhin
125abe2fe4 Merge pull request #8838 from tomoaki0705:dispatchFp16 2017-06-06 15:31:42 +00:00
Tomoaki Teshima
e269ef96cb update convertFp16 using CV_CPU_CALL_FP16
* avoid link error (move the implementation of software version to header)
 * make getConvertFuncFp16 local (move from precomp.hpp to convert.hpp)
 * fix error on 32bit x86
2017-06-06 22:26:51 +09:00
Rostislav Vasilikhin
c6a3a18894 SoftFloat integrated (#8668)
* everything is put into softfloat.cpp and softfloat.hpp

* WIP: try to integrate softfloat into OpenCV

* extra functions removed

* softfloat made stateless

* CV_EXPORTS added

* operators fixed

* exp added, log: WIP

* log32 fixed

* shorter names; a lot of TODOs

* log64 rewritten

* cbrt32 added

* minors, refactoring

* "inline" -> "CV_INLINE"

* cast to bool warnings fixed

* several warnings fixed

* fixed warning about unsigned unary minus

* fixed warnings on type cast

* inline -> CV_INLINE

* special cases processing added (NaNs, Infs, etc.)

* constants for NaN and Inf added

* more macros and helper functions added

* added (or fixed) tests for pow32, pow64, cbrt32

* exp-like functions fixed

* minor changes

* fixed random number generation for tests

* tests for exp32 and exp64: values are compared to SoftFloat-based naive implementation

* minor warning fix

* pow(f, i) 32/64: special cases handling added

* unused functions removed

* refactoring is in progress (not compiling)

* CV_inline added

* unions {uint_t, float_t} removed

* tests compilation fixed

* static const members -> static methods returning const

* reinterpret_cast

* warning fixed

* const-ness fixed

* all FP calculations (even compile-time) are done in SoftFloat + minor fixes

* pow(f, i) removed from interface (can cause incorrect cast) to internals of pow(f, f), tests fixed

* CV_INLINE -> inline

* internal constants moved to .cpp file

* toInt_minMag() methods merged into toInt() methods

* macros moved to .cpp file

* refactoring: types renamed to softfloat and softdouble; explicit constructors, etc.

* toFloat(), toDouble() -> operator float(), operator double()

* removed f32/f64 prefixes from functions names

* toType() methods removed, round() and trunc() functions added

* minor change

* minors

* MSVC: warnings fixed

* added int cvRound(), cvFloor, cvCeil, cvTrunc, saturate_cast<T>()

* typo fixed

* type cast fixed
2017-05-29 17:07:25 +03:00
Alexander Alekhin
d54b1ad88a Merge pull request #8805 from catree:solvePnP_doc 2017-05-29 13:52:15 +00:00
Alexander Alekhin
36918b3bb8 Merge pull request #8814 from woodychow:openmp_num_threads 2017-05-29 13:17:41 +00:00
catree
542cdb2c39 Improve solvePnP doc, add assert >= 4 in solvePnP, escape underscore character for Scalar_ documentation.
Add reference to SOLVEPNP_ITERATIVE in the doc.
2017-05-29 14:59:14 +02:00
Woody Chow
6e00c7651b Use num_threads clause of #pragma omp parallel instead to avoid calling omp_set_num_threads for the entire application 2017-05-29 14:16:10 +09:00
Vadim Pisarevsky
ee257ffe9e Merge pull request #8455 from terfendail:ovxhal_skipsmall 2017-05-26 12:10:18 +00:00
Vitaly Tuzov
1d62a025b3 Moved size restrictions for OpenVX processed images to corresponding cpp files 2017-05-25 19:25:17 +03:00
mschoeneck
4a4d94f266 Merge pull request #8694 from mschoeneck:Canny
Parallelize Canny with custom gradient (#8694)

* New Canny implementation. Restructuring code in parallelCanny class. Align mag buffer and map.

* Fix warnings.

* Missing SIMD check added.

* Replaced local trailingZeros in contours.cpp. Use alignSize in canny.cpp

* Fix warnings in alignSize and allocate just minimum extra columns.

* Fix another warning in map.create.

* Exchange for loop by do loop to avoid double check at the beginning.
Define extra SIMD CANNY_CHECK to avoid unnecessary continue.
2017-05-24 16:20:25 +03:00
Matthias Grundmann
cf4e9e5ce2 Update matrix.cpp
Fix race condition in getDefaultAllocator and setDefaultAllocator interaction / not threadsafe currently
2017-05-24 13:55:18 +03:00
krishraghuram
9ea2f5211e Correct the existing documented T-API functions to match the doxygen format (#8758)
* Correct the existing documented T-API functions to match the doxygen format.

* docs: fix comments style

* T-API documentation: minor formatting changes
2017-05-24 13:31:35 +03:00
Vadim Pisarevsky
7c3577f7ae Merge pull request #8779 from vpisarev:empty_cmp_fix 2017-05-23 19:06:57 +00:00
Alexander Alekhin
15a2c7724d Merge pull request #8743 from tomoaki0705:featureConvertFp16UMat 2017-05-23 15:32:12 +00:00
Vadim Pisarevsky
4eda8efd42 resolves https://github.com/opencv/opencv/issues/7792 2017-05-23 18:16:40 +03:00
Vadim Pisarevsky
a065e4b9aa Merge pull request #8769 from mshabunin:kw-fixes 2017-05-23 14:59:36 +00:00
Alexander Alekhin
0448260ed7 Merge pull request #8542 from jveitchmichaelis:update-cudadevo-doc
Update documentation for getCudaEnabledDeviceCount
2017-05-23 17:07:20 +03:00
Alexander Alekhin
715b88c4cb Merge pull request #8775 from mshabunin:ipp-count-fix 2017-05-23 13:29:16 +00:00
Tomoaki Teshima
d81cdb8e1c add OpenCL version of convertFp16 and test
* disable vector operation for now
 * brush up the implementation based on comment
2017-05-23 20:00:21 +09:00
Maksim Shabunin
f23b6ba652 Fixed multidimensional count non-zero IPP implementation 2017-05-23 13:23:59 +03:00
Maksim Shabunin
b04ed5956e Fixed several issues found by static analysis in core module 2017-05-23 12:35:31 +03:00
Alexander Alekhin
c5e9d1adae macro for static analysis tools 2017-05-23 12:35:31 +03:00
Vladislav Sovrasov
2c2b1405a3 Add test for Mat_::release() 2017-05-23 12:20:48 +03:00
cDc
003745432f fix Mat_ release #8680 2017-05-23 12:19:57 +03:00
Vadim Pisarevsky
17b89b2a35 Merge pull request #8770 from alalek:fix_pthreads_default 2017-05-22 22:18:26 +00:00
Alexander Alekhin
16ea72e6b9 build: fix snprintf() usage 2017-05-22 22:24:17 +03:00
Alexander Alekhin
900c406541 core: fix threads count in pthreads 2017-05-22 21:45:25 +03:00
Ryuhei Mori
bb3a416320 Fix cpu features detection on android 2017-05-19 21:19:13 +08:00
Alexander Alekhin
17eef4d8a9 Merge pull request #8596 from nnorwitz:nnorwitz 2017-05-12 19:48:28 +00:00
Philipp Hasper
dcd8589b67 Fixed exp32f() compilation on MSVC 2017-05-10 18:25:39 +02:00
Vadim Pisarevsky
b683e68223 Merge pull request #8398 from woodychow:normL2Sqr_avx2 2017-05-03 14:49:56 +00:00
nnorwitz
256b6bb3db Don't blow out the stack. Use a smaller buffer and prevent buffer overruns with snprintf. 2017-05-03 16:56:09 +03:00
Vadim Pisarevsky
925594d1e3 Merge pull request #7894 from alalek:ocl_program 2017-05-03 13:48:58 +00:00
Vadim Pisarevsky
dd81c29834 Merge pull request #8359 from csukuangfj:patch-fix-error-code-documentation 2017-05-03 13:48:28 +00:00
Vadim Pisarevsky
fe2416575b Merge pull request #8432 from csukuangfj:issue-8411 2017-05-03 12:39:55 +00:00
Vadim Pisarevsky
b92bbffa1a Merge pull request #8557 from grundman:patch-3 2017-05-03 12:12:59 +00:00
Vadim Pisarevsky
8a16997b1e Merge pull request #8580 from terfendail:ovx_newperftest 2017-05-03 11:01:01 +00:00
André Mewes
70e6391f38 create homogeneous affine matrix when constructing from 4x3 cv::Mat 2017-05-02 14:09:20 +03:00
Alexander Alekhin
04573615c5 Merge pull request #8671 from tomoaki0705:fixBuildVS2012sprintf 2017-04-29 15:13:15 +00:00
Robert Bragg
8f5ea7deda core: avoid clash with _N define from ctype.h in headers
This updates the public headers to use _Nm instead of _N in templates
since _N is defined by the widely used ctype.h.
2017-04-27 14:45:24 +01:00
Vitaly Tuzov
2492c299f3 Extended set of existing performance test to OpenVX HAL suitable execution modes 2017-04-27 12:32:29 +03:00
Alexander Alekhin
75f28245a8 core: fix persistence bug in RAW I/O code
- persistence.cpp code expects special sizeof value for passed structures
- this assumption is lead to memory corruption problems
- fixed/workarounded test to prevent memory corruption on Linux 32-bit systems
2017-04-26 17:19:26 +03:00
Alexander Alekhin
26be2402a3 Merge pull request #8629 from lupustr3:pvlasov/icv2017u2_update2 2017-04-26 10:45:37 +00:00
Pavel Vlasov
11c2ffaf1c Update for IPP for OpenCV 2017u2 integration;
Updated integrations for:
cv::split
cv::merge
cv::insertChannel
cv::extractChannel
cv::Mat::convertTo - now with scaled conversions support
cv::LUT - disabled due to performance issues
Mat::copyTo
Mat::setTo
cv::flip
cv::copyMakeBorder - currently disabled
cv::polarToCart
cv::pow - ipp pow function was removed due to performance issues
cv::hal::magnitude32f/64f - disabled for <= SSE42, poor performance
cv::countNonZero
cv::minMaxIdx
cv::norm
cv::canny - new integration. Disabled for threaded;
cv::cornerHarris
cv::boxFilter
cv::bilateralFilter
cv::integral
2017-04-25 15:53:12 +03:00
Alexander Alekhin
56a0a50da3 Merge pull request #8603 from alalek:fix_test_name 2017-04-25 10:36:03 +00:00
Vadim Pisarevsky
96aaac186d Merge pull request #8616 from vpisarev:dnn4 2017-04-25 06:32:16 +00:00
Peter Würtz
4c095a76c0 Add docstring for UMat::handle 2017-04-22 09:44:29 +02:00
Tomoaki Teshima
0f5aaade61 fix test error on VS2012 2017-04-21 23:07:46 +09:00
Alexander Alekhin
f1c8094f5f Merge pull request #8575 from lupustr3:pvlasov/icv2017u2_initial_update 2017-04-21 10:55:29 +00:00
Pavel Vlasov
35c7216846 IPP for OpenCV 2017u2 initial enabling patch; 2017-04-20 20:26:30 +03:00
Vadim Pisarevsky
dd54f7a22a got rid of Blob and BlobShape completely; use cv::Mat and std::vector<int> instead 2017-04-19 23:20:17 +03:00
Arnaud Brejeon
636ab095b0 Merge pull request #8535 from arnaudbrejeon:std_array
Add support for std::array<T, N> (#8535)

* Add support for std::array<T, N>

* Add std::array<Mat, N> support

* Remove UMat constructor with std::array parameter
2017-04-19 13:13:39 +03:00
insoow
2922738b6d Merge pull request #8104 from insoow:master
Gemm kernels for Intel GPU (#8104)

* Fix an issue with Kernel object reset release when consecutive Kernel::run calls

Kernel::run launch OCL gpu kernels and set a event callback function
to decreate the ref count of UMat or remove UMat when the lauched workloads
are completed. However, for some OCL kernels requires multiple call of
Kernel::run function with some kernel parameter changes (e.g., input
and output buffer offset) to get the final computation result.
In the case, the current implementation requires unnecessary
synchronization and cleanupMat.

This fix requires the user to specify whether there will be more work or not.
If there is no remaining computation, the Kernel::run will reset the
kernel object

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* GEMM kernel optimization for Intel GEN

The optimized kernels uses cl_intel_subgroups extension for better
performance.

Note: This optimized kernels will be part of ISAAC in a code generation
way under MIT license.

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* Fix API compatibility error

This patch fixes a OCV API compatibility error. The error was reported
due to the interface changes of Kernel::run. To resolve the issue,
An overloaded function of Kernel::run is added. It take a flag indicating
whether there are more work to be done with the kernel object without
releasing resources related to it.

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* Renaming intel_gpu_gemm.cpp to intel_gpu_gemm.inl.hpp

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* Revert "Fix API compatibility error"

This reverts commit 2ef427db91.

Conflicts:
	modules/core/src/intel_gpu_gemm.inl.hpp

* Revert "Fix an issue with Kernel object reset release when consecutive Kernel::run calls"

This reverts commit cc7f9f5469.

* Fix the case of uninitialization D

When C is null and beta is non-zero, D is used without initialization.
This resloves the issue

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* fix potential output error due to 0 * nan

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* whitespace fix, eliminate non-ASCII symbols

* fix build warning
2017-04-19 12:57:54 +03:00
Alexander Alekhin
dd304dbe05 test: fix min/max name mismatching 2017-04-18 22:25:00 +03:00
Yuriy Solovyov
26ccc09c46 Fix zlib issue on iOS 2017-04-14 17:16:00 +03:00
Vitaly Tuzov
9dc36a1ece Tuned restrictions for Canny, Warp, FAST, Accumulate and Convolution OpenVX HAL calls on small images 2017-04-14 13:20:25 +03:00
Alexander Alekhin
8ba95cd498 Merge pull request #8548 from csukuangfj:fix-typo-RNG 2017-04-11 11:46:06 +00:00
Vitaly Tuzov
87bb74312b Disabled vxuConvolution call for Sobel, GaussianBlur and Box filter evaluation 2017-04-11 14:11:55 +03:00
Alexander Alekhin
c839a2ccb1 Merge pull request #8525 from nnorwitz:master 2017-04-11 09:30:09 +00:00
Matthias Grundmann
fce7469961 Update utility.hpp
Adding missing header for ostream decl. in line 384
2017-04-10 12:04:09 -07:00
Fangjun KUANG
4065778255 fix typos. 2017-04-10 09:32:50 +02:00
Vitaly Tuzov
0f1a56da7c Changed restrictions for OpenVX HAL calls on small images 2017-04-09 01:17:57 +03:00
Fangjun KUANG
ff31d069d0 avoid allocating memory for string with a length of zero.
Remove the specifier "explicit", because the constructor has no parameter. There is no point to add it here.
2017-04-07 20:46:17 +02:00
jveitchmichaelis
8f19363c07 Update documentation for getCudaEnabledDeviceCount
Inform users that getCudaEnabledDeviceCount can return -1 in some cases.
2017-04-07 14:30:14 +01:00
nnorwitz
24e8cd1a78 Use %% for inline assembly rather than % so this compiles with clang.
Same as 9210cefb36 but for this file too.
2017-04-06 12:54:56 -07:00
Vitaly Tuzov
bf62dca45a Extended restrictions for OpenVX HAL calls on small images 2017-04-06 18:17:34 +03:00
Vitaly Tuzov
bf5b7843e8 Extended set of OpenVX HAL calls disabled for small images 2017-04-06 18:17:32 +03:00
Maksim Shabunin
4d62f1de1e Added javadoc generation 2017-04-05 18:18:39 +03:00
Alexander Alekhin
e5d9b608c4 cmake: fix fp16 support 2017-04-04 20:34:58 +03:00
Alexander Alekhin
297ba85323 Merge pull request #8441 from alalek:dispatch_mathfuncs_core 2017-04-03 14:03:49 +00:00
Vadim Pisarevsky
4aa51f6a32 Merge pull request #8484 from berak:patch-2 2017-04-03 09:57:58 +00:00
Alexander Alekhin
bbdd8ba078 Merge pull request #8506 from sergiud:mat-move-assignment-dont-copy 2017-04-02 10:13:17 +00:00
Sergiu Deitsch
4f31759965 prevent copying in cv::Mat_<T> move assignment 2017-04-01 21:53:30 +02:00
Alexander Alekhin
b67382cbeb Merge pull request #8494 from tomoaki0705:fixWarningCuda 2017-03-31 15:42:01 +00:00
Tomoaki Teshima
507071cc6f suppress warnings on Jetson TK1 2017-03-31 08:20:59 +09:00
berak
3e0b63f65b fix comment in optim.hpp 2017-03-30 11:07:52 +02:00
Alexander Alekhin
49e16a3c9f Merge pull request #8448 from jexner:foreach-segfault-fix 2017-03-24 18:25:30 +00:00
Julian Exner
46af07575e Add test case for cv::Mat::forEach
This test case uses a matrix with more dimensions than columns. Without
the fix in
b45e784beb
this crashes with a segmentation fault, hangs or simply fails with wrong
values.
2017-03-24 15:34:58 +01:00
jexner
b45e784beb Fix segmentation fault in cv::Mat::forEach
This issue concerns only matrices with more dimensions than columns.
See https://github.com/opencv/opencv/issues/8447
2017-03-23 18:48:59 +01:00
Fangjun KUANG
da94d85789 add more info to the error code. 2017-03-23 14:40:34 +01:00
Fangjun KUANG
f82d64c6e5 Add more info to the error code. 2017-03-23 14:34:24 +01:00
Alexander Alekhin
1e6ce1d2f8 core(mathfuncs_core): cpu optimization dispatched code 2017-03-23 16:17:10 +03:00
Alexander Alekhin
17e5e4cd5a core: CPU target dispatcher update
- use suffixes like '.avx.cpp'
- added CMake-generated files for '.simd.hpp' optimization approach
- wrap HAL intrinsic headers into separate namespaces for different build flags
- automatic vzeroupper insertion (via CV_INSTRUMENT_REGION macro)
2017-03-23 16:12:11 +03:00
Fangjun KUANG
94521629ab fix issue 8411. 2017-03-22 23:24:47 +01:00
KUANG, Fangjun
03c4c37969 fix issue 8189. 2017-03-22 22:24:20 +01:00
KUANG, Fangjun
eae1ebfd29 fix issue 8411. 2017-03-22 22:03:29 +01:00
Vadim Pisarevsky
0b3d13645f Merge pull request #8364 from csukuangfj:patch-2 2017-03-22 14:13:13 +00:00
Alexander Alekhin
ba104b61bf Merge branch 'pr8392' 2017-03-22 13:45:24 +03:00
Vadim Pisarevsky
8abd163464 Merge pull request #8404 from khnaba:stream-with-custom-allocator 2017-03-21 20:06:56 +00:00
Vadim Pisarevsky
e5dbd2c3a5 Merge pull request #8406 from khnaba:dft-as-algorithm 2017-03-21 20:05:54 +00:00
Vadim Pisarevsky
a57d144076 Merge pull request #7462 from alalek:cpu_multi_target 2017-03-21 19:51:32 +00:00
Naba Kumar
29680100ac Support for creating streams with custom allocator 2017-03-21 14:50:14 +02:00
Naba Kumar
00f3ad7217 Implement DFT as cv::Algorithm to support concurrent streams 2017-03-21 13:55:13 +02:00
Naba Kumar
cdcf44b3ef Expose BufferPool class for external use also 2017-03-21 13:50:02 +02:00
Woody Chow
c370cc10e9 Optimize normL2Sqr_ with AVX2 2017-03-16 14:20:41 +09:00
Woody Chow
a8763c1fec Optimize exp32f with AVX2 2017-03-15 17:03:36 +09:00
Alexander Alekhin
73e9c44377 Merge pull request #8370 from csukuangfj:patch-7 2017-03-14 13:32:35 +00:00
Alexander Alekhin
661f3e2160 Merge pull request #8371 from csukuangfj:patch-8 2017-03-14 13:23:02 +00:00
Alexander Alekhin
6fcb07d41e Merge pull request #8375 from Sahloul:fixes/matx/init 2017-03-14 13:22:26 +00:00
Alexander Alekhin
54f7ebdec9 Merge pull request #8380 from csukuangfj:patch-9 2017-03-14 13:20:52 +00:00
Hamdi Sahloul
171e705ba4 Fixes the constructor of 1x14, 2x7, 7x2 or 14x1 matrix 2017-03-14 18:26:22 +09:00
Fangjun KUANG
3ad6d13ff3 Fix an error in the documentation. 2017-03-14 09:57:37 +01:00
hailong-wang
207218e920 Fix the bug of Mat_<>::opeartor []
`template<typename _Tp> inline const _Tp* Mat_<_Tp>::operator [](int y) const` does not support 3d matrix since it checks rows.

This operator[] shall check size.p[0] instead.
2017-03-14 13:02:59 +08:00
Fangjun KUANG
31cc519cd3 fix typos. 2017-03-13 13:51:22 +01:00
Fangjun KUANG
3c15913f53 Impove the documentation for Mat::diag 2017-03-13 12:46:50 +01:00
Alexander Alekhin
502aa1f053 Merge pull request #8368 from csukuangfj:patch-5 2017-03-13 10:15:30 +00:00
Fangjun KUANG
95468b72f3 Fix typos in the documentation for cv::Mat. 2017-03-13 10:20:41 +01:00
KUANG, Fangjun
debc1c4c95 fix an error while setting kernel argument for a 3-D matrix. 2017-03-12 18:29:49 +01:00
KUANG, Fangjun
be7d4608fb Add more comments to the members of CoreTLSData related to OpenCL. 2017-03-12 16:13:00 +01:00
KUANG, Fangjun
3c5d87cbae Add more information to the error code. 2017-03-11 10:55:50 +01:00
Alexander Alekhin
8ef23d64a1 Merge pull request #8308 from sovrasov:fs_dmatch_kpts_update 2017-03-07 19:28:34 +00:00
Alexander Alekhin
f9f013e264 Merge pull request #8323 from csukuangfj:csukuangfj-patch-8 2017-03-07 11:24:19 +00:00
Fangjun KUANG
8a679128fa Update comments for cv::InputArray. 2017-03-06 14:45:30 +01:00
Vladislav Sovrasov
931b32d102 core: add single DMatch/Keypoint I/O 2017-03-03 13:58:55 +03:00
Alexander Alekhin
89ce2dc405 core: DMatch I/O tests 2017-03-03 13:55:27 +03:00
Alexander Alekhin
5d31d6ebbb Merge pull request #8306 from chacha21:portability 2017-03-03 04:46:05 +00:00
chacha21
74abbd0898 Fix compilation when USE_ZLIB is false
create a dummy gzFile type
2017-03-02 16:58:51 +01:00
chacha21
aa1b031274 get rid of warning C4800 under VS2010
the "std::basic_ios::operator bool" differs between C++98 and C++11. The
"double not" syntax is portable and covers both cases with equivalent
meaning
2017-03-02 16:56:20 +01:00
Vadim Pisarevsky
c7049ca627 Merge pull request #8293 from alalek:update_rng_in_parallel_for 2017-03-02 05:51:01 +00:00
Vadim Pisarevsky
ddfe688be6 Merge pull request #8299 from sovrasov:fs_fix_kpts_dmatch_output 2017-03-02 05:46:38 +00:00
Alexander Alekhin
69f1d1ddff Merge pull request #8296 from ville-v:master 2017-03-01 14:12:00 +00:00
Alexander Alekhin
47c4dcc8a3 Merge pull request #8204 from terfendail:ovx_tlcontext 2017-03-01 12:36:37 +00:00
Vladislav Sovrasov
c321d025c4 Fix DMatch and Keypoint I/O in FileStorage 2017-03-01 15:07:38 +03:00
ville-v
0c1bcf354c Fix issue #8278: "CV_XADD compile errors with Embarcadero C++ Builder 10.1" 2017-03-01 08:47:49 +02:00
ville-v
1de10f9f86 Add files via upload
Fix issue #8280: "fastmath.h related compile errors with Embarcadero C++ Builder 10.1"
2017-03-01 08:42:14 +02:00
Alexander Alekhin
649bb7ac04 core: parallel_for_(): update RNG state of the main thread 2017-02-28 18:28:15 +03:00
Alexander Alekhin
ebdd74105a core(test): add regression test for RNG in parallel_for_() 2017-02-28 18:22:58 +03:00
Alexander Alekhin
b28fd79fdc core: parallel_for_(): propagate RNG state from the main thread 2017-02-28 18:22:46 +03:00
Alexander Alekhin
eee638fd81 Merge pull request #8244 from sovrasov:adjust_roi_fix 2017-02-24 11:18:35 +00:00
Alexander Alekhin
c624d82383 Merge pull request #8239 from tomoaki0705:buildUniversalIntrinsicBlend 2017-02-24 11:17:51 +00:00
Vadim Pisarevsky
12d7429ff0 Merge pull request #8064 from terfendail:sgbm_bigbuffer 2017-02-23 20:11:26 +00:00
Vladislav Sovrasov
595437bdd1 hal: replace round() with cvRound() 2017-02-22 14:08:38 +03:00
Vladislav Sovrasov
14451f3f06 core: fix adjustROI behavior on indexes overflow 2017-02-22 14:05:51 +03:00
Vitaly Tuzov
9a4b5a4545 OpenVX calls updated to use single common OpenVX context per thread 2017-02-21 16:08:23 +03:00
Alexander Alekhin
ec7f74f7b4 core(TLS): add cleanup() method 2017-02-21 16:08:23 +03:00
Fangjun KUANG
526220a171 Fix typos in the documentation (#8226)
* fix typos.

* Fix typos.

* Fix typos.

* Fix typos.

* Fix typos.
2017-02-21 12:48:15 +03:00
Vadim Pisarevsky
5bfaf9931b Merge pull request #8228 from csukuangfj:csukuangfj-patch 2017-02-21 09:46:09 +00:00
Fangjun KUANG
b1851e2f16 Add support to print cv::UMat.
Now a user can use `std::cout` to print an object of `cv::UMat` just like `cv::Mat`.
2017-02-20 16:22:46 +01:00
Tomoaki Teshima
64cf206fb5 optimize blend using universal intrinsic
- add more channels/depth performance test for blend
2017-02-20 19:09:26 +09:00
Alexander Alekhin
b2da9df82d Merge pull request #8221 from csukuangfj:csukuangfj-path-2 2017-02-19 10:16:00 +00:00
Fangjun KUANG
e827a5bd9e Fix an error in the demo code for cv::Mat::forEach 2017-02-18 10:14:29 +01:00
Fangjun KUANG
57ed0e57f0 Fix the documentation for Mat::diag(int). (#8199)
* Fix the documentation for Mat::diag(int).

Fix issue #8181

* Fix the documentation for Mat::diag(int).

Fix issue #8181.

* Add support for printing out cv::Complex.

* Remove extra spaces.

* cv::Complex is submitted as a new pull request.
2017-02-16 18:00:32 +03:00
Vadim Pisarevsky
ca0b6fbb95 Merge pull request #8203 from alalek:ocl_kernelarg_validate 2017-02-16 14:58:25 +00:00
Jinay Patel
f710d96602 Update ocl.cpp function Device::OpenCLVersion()
Instead of CL_DEVICE_EXTENSIONS in Querying OpenCLVersion, it should be CL_DEVICE_VERSION flag which needs to be passed to the function.
2017-02-16 15:20:57 +05:30
Alexander Alekhin
bc8a91ed83 Merge pull request #8211 from csukuangfj:csukuangfj-patch-3 2017-02-16 08:57:44 +00:00
Alexander Alekhin
bb8be523c5 Merge pull request #8210 from alalek:fix_mkl_link 2017-02-16 08:56:02 +00:00
Fangjun KUANG
a8a208e0fe Merge pull request #8208 from csukuangfj:complex_support
Add support for printing out cv::Complex. (#8208)

* Add support for printing out cv::Complex.

* Conform to the format of std::complex.

* Remove extra spaces.

* Remove extra spaces.
2017-02-15 21:50:14 +03:00
Alexander Alekhin
3fbaabc866 Merge pull request #8209 from csukuangfj:csukuangfj-patch-2 2017-02-15 18:48:01 +00:00
Fangjun KUANG
5e4dfb9546 Change the argument type to cl_platform_info.
Although both `cl_platform_info` and `cl_device_info` are defined as macro `cl_uint`, it needs to use `cl_platform_info` to get
the platform information.
2017-02-15 16:44:40 +01:00
Alexander Alekhin
05248a3dea cmake: fix order of MKL libraries, don't pass additional libraries as modules 2017-02-15 17:13:13 +03:00
Fangjun KUANG
46fe74177d Fix typos. 2017-02-15 14:52:00 +01:00
Pavel Rojtberg
df86f0752a add missing casts to _Tp as determinant() always returns double 2017-02-15 12:21:17 +01:00
Alexander Alekhin
4c7aa8645a ocl: validate arguments in KernelArgs constructor
- don't use undefined flag=0. It should be CONSTANT instead.
- don't allow 'UMat* m=NULL' argument (except LOCAL/CONSTANT flags).
  This case is not handled well to provide NULL __global pointers.
  It is better to use '-D' macro defines instead (at least for performance)
2017-02-14 16:10:32 +03:00
Alexander Alekhin
e16227b53c cmake: support multiple CPU targets 2017-02-13 19:52:59 +03:00
Fangjun KUANG
1e11657ba4 Merge pull request #8197 from csukuangfj/csukuangfj-patch-1
Fix typos in the documentation for AutoBuffer. (#8197)

* Allocate 1000 floats to match the documentation

Fix the documentation of `AutoBuffer`. By default, the following code
```.cpp
cv::AutoBuffer<float> m;
```` 
allocates only 264 floats. But the comment in the demonstration code says it allocates 1000 floats, which is 
not correct.

* fix typo in the comment.
2017-02-13 13:58:44 +03:00
Alexander Alekhin
9ac9e9e29a core: fix String::end() implementation 2017-02-09 16:36:22 +03:00
Vitaly Tuzov
4950f542d1 Fix for SGBM compute() buffer allocation failure on big images 2017-02-08 12:49:21 +03:00
Alexander Alekhin
519e452e1a Merge pull request #8128 from LaurentBerger:MatrixExpressions
Add a link to MatExpr in Detailed Description of Mat
2017-02-06 10:34:12 +00:00
Alexander Alekhin
48f7cbec75 Merge pull request #8107 from reunanen:fix8093 2017-02-06 10:31:34 +00:00
LaurentBerger
488eb11ba8 Add a link to MatExpr in Detailed Description of Mat 2017-02-04 11:10:50 +01:00
Pavel Vlasov
a47b7a34be Adds IPP control functions to bindings export 2017-02-01 10:29:35 +03:00
Alexander Alekhin
3476440ec3 Merge pull request #8078 from tomoaki0705:universalIntrinsicLapack 2017-01-31 18:46:54 +00:00
Juha Reunanen
f3cb5084cf Fix #8093: CV_DbgAssert that the result of area() fits in the return value 2017-01-31 15:02:36 +02:00
Vadim Pisarevsky
dfb348ef0b Merge pull request #8081 from mshabunin:fix-kmeans-compactness 2017-01-31 12:19:46 +00:00
Maksim Shabunin
b417b4dbee KMeans improvement
- fixed returned compactness value
- added centers drawing to the example app
- added compactness test
2017-01-31 12:05:08 +03:00
Tomoaki Teshima
fd711219a2 use universal intrinsic in VBLAS
- brush up v_reduce_sum of SSE version
2017-01-31 05:36:27 +09:00
Tomoaki Teshima
d0bdf99501 check correct flag 2017-01-27 18:42:58 +09:00
Tomoaki Teshima
820fdbff23 brush up AVX optimization in popcount
- make sure SIMD optimization works even when AVX is not available
2017-01-26 18:37:56 +09:00
mshabunin
c6c519166e Added CV_DEPRECATED macro 2017-01-24 15:57:06 +03:00
Alexander Alekhin
a22f03e749 Merge pull request #7863 from tomoaki0705:universalIntrinsicPopcount 2017-01-18 17:25:02 +00:00
Alexander Alekhin
7c91700cc6 Merge pull request #7999 from alalek:fix_lapack 2017-01-18 13:20:30 +00:00
Vladislav Sovrasov
896c34fab3 Add support of type headings from YAML1.2 2017-01-17 16:40:38 +03:00
Alexander Alekhin
3668a01fca eliminate warnings
hal_internal.cpp(101): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data
2017-01-17 15:56:42 +03:00
Alexander Alekhin
2b44c0b649 cmake: fix lapack
- added compile check with multiple tries for different configurations
- restored find_package(LAPACK)
- avoided modification of OPENCV_LINKER_LIBS
2017-01-17 15:56:42 +03:00
Tomoaki Teshima
8b22099da2 use universal intrinsic and SSE4 popcount instruction in normHamming
- add v_popcount in universal intrinsic
 - add test for v_popcount
 - add wrapper of popcount for both MSVC and GCC
2017-01-12 09:09:22 +09:00
Vadim Pisarevsky
ec5038f2a7 Merge pull request #7947 from utibenkei:tracking-module-java 2017-01-11 11:41:19 +00:00
atinfinity
b3c77e664d added to check the support of AVX2 2017-01-09 19:51:33 +09:00
Matt Bennett
c3a8db6d6c Merge pull request #7952 from mattmyne:JSONWriteFixTrailingDecimalPoint
Append zero to trailing decimal place for FileStorage JSON write of a float or double value (#7952)

* Fix for FileStorage JSON write of a float or double value that has no fractional part; appends a zero character after the trailing decimal place to meet JSON standard.

* strlen return to size_t type rather than unnecessary cast to int
2017-01-02 20:28:07 +00:00
utibenkei
579ffbf97e Added Java wrapping for tracking module 2016-12-31 02:19:38 +09:00
Steve
8a6fabed83 Avoid segmentation fault
Change `<=` to `<` to avoid accessing the first character of an empty string
2016-12-29 17:23:40 -08:00
Alexander Alekhin
7dd3723abe Merge tag '3.2.0' 2016-12-23 16:20:02 +03:00
Alexander Alekhin
70bbf17b13 OpenCV Version++
3.2.0
2016-12-23 15:54:44 +03:00
Vadim Pisarevsky
ad74fdd7cc moved BLAS/LAPACK detection scripts from opencv_contrib/dnn to the main repository (#7918)
* moved BLAS/LAPACK detection scripts from opencv_contrib/dnn to the main repository.

* trying to fix the bug with undefined symbols sgesdd_ and dgesdd_

* removed extra whitespaces; disabled LAPACK on IOS
2016-12-22 22:57:44 +03:00
Alexander Alekhin
c3e409f950 ocl: update program cache defaults 2016-12-22 04:52:43 +03:00
Alexander Alekhin
a4db9833f7 Merge pull request #7885 from alalek:release-3.2.0-rc 2016-12-19 17:59:14 +00:00
Alexander Alekhin
7a95e654eb ocl: update compiled programs
- minimize library initialization time (lazy calculations of program hash)
- LRU cache of in-memory compiled programs
2016-12-19 17:17:20 +03:00
Alexander Alekhin
d85c11e525 OpenCV version++
3.2.0-rc
2016-12-19 17:12:18 +03:00
Alexander Alekhin
86bb523991 Merge pull request #7871 from savuor:fix/openvx_cvt_on 2016-12-19 13:51:53 +00:00
Alexander Alekhin
05d187ec90 ocl: move deprecated code from ocl.cpp 2016-12-19 00:34:50 +03:00
Rostislav Vasilikhin
fcdbe16252 openvx_cvt disabled for Khronos, fixed sstep and dstep usage 2016-12-16 23:00:55 +03:00
Alexander Alekhin
862c3aa6e1 Merge pull request #7873 from addisonElliott:Mat_Range_InitializerList 2016-12-16 16:45:17 +00:00
Alexander Alekhin
0e4dde1781 Merge pull request #7872 from alalek:merge-2.4 2016-12-16 16:03:14 +02:00
Rostislav Vasilikhin
cf5e976fad OpenVX convert enabled 2016-12-16 15:57:21 +03:00
Alexander Alekhin
c038d1be60 Merge pull request #7858 from addisonElliott:master 2016-12-16 10:57:27 +00:00
Addison Elliott
eb04b2bfa9 Added N-dim submat selection with vectors
Currently, to select a submatrix of a N-dimensional matrix, it requires
two lines of code while only one line of code is required if using a 2D
array.

I added functionality to be able to select an N-dim submatrix using a
vector list instead of a Range pointer. This allows initializer lists to
be used for a one-line selection.
2016-12-15 09:16:40 -06:00
Alexander Alekhin
dbbbad40fb build: eliminate ICC warnings 2016-12-15 15:57:40 +03:00
Addison Elliott
fa6692afcf Added new overloaded functions for Mat and UMat that accepts std::vector<int> instead of int * for the sizes on a N-dimensional array.
This allows for an N-dimensional array to be setup in one line instead of two when using C++11 initializer lists. cv::Mat(3, {zDim, yDim, xDim}, ...) can be used instead of having to create an int pointer to hold the size array.
2016-12-14 13:52:03 -06:00
Rostislav Vasilikhin
8b9422a052 OpenVX wrappers rewritten with CV_OVX_RUN, VX_DbgThrow 2016-12-14 17:49:41 +03:00
mshabunin
965deaba8d Documentation fixes for latest doxygen 2016-12-14 14:14:13 +03:00
Alexander Alekhin
a24ebc9952 Merge pull request #7840 from alalek:fix_test_rng 2016-12-13 11:29:53 +00:00
Alexander Alekhin
fbf2383d5d Merge pull request #7787 from alalek:ocl_explicit_only 2016-12-13 10:22:33 +00:00
Alexander Alekhin
cb1d4e692b Merge pull request #7801 from alalek:fix_7795 2016-12-13 10:20:31 +00:00
Alexander Alekhin
34c07f6aaf Merge pull request #7729 from apavlenko:vx-canny 2016-12-12 19:14:39 +00:00
Alexander Alekhin
fb223784a6 test: fix Core_HAL.mat_decomp test implementation 2016-12-12 14:47:38 +03:00
Alexander Alekhin
2fded5d8fb Merge pull request #7822 from alalek:fix_arithmmask_test 2016-12-09 19:02:30 +00:00
apavlenko
76c38f0c80 trying to enable canny_vx adding a new test comparing canny_cv vs canny_vx 2016-12-09 14:53:06 +03:00
apavlenko
1e2ddc30b1 Canny via OpenVX, Node wrapper extended (query/set attribute), some naming fixes 2016-12-09 14:53:06 +03:00
Alexander Alekhin
beea04cc89 Merge pull request #7826 from mshabunin:fix-base64-issue 2016-12-08 17:01:33 +00:00
Alexander Alekhin
48bff3bfd3 Merge pull request #7748 from LaurentBerger:Normalize3d 2016-12-08 16:20:11 +00:00
mshabunin
e941259434 Persistence: fixed valgrind warning in base64 decoder 2016-12-08 14:58:18 +03:00
Alexander Alekhin
79857f1e38 test: fix Core_ArithmMask.uninitialized test
Don't run binary operations for floating-point numbers
norm() will fail with NAN result.
2016-12-07 21:44:17 +03:00
Rostislav Vasilikhin
695b20172b Merge pull request #7794 from savuor:fix/ovx_cvt_continuous
Fixed OpenVX wrapper for Mat::convertTo() (#7794)

* fixed for cases of unrolled (w*h x 1) matrices

* more error handling
2016-12-06 18:29:44 +02:00
Alexander Alekhin
fef94315af core: exp/log workaround for MSVS 2016-12-06 16:57:35 +03:00
Alexander Alekhin
0724d13bcd build: cuda warnings 2016-12-04 03:10:05 +03:00
Alexander Alekhin
44d9d59f08 ocl: stop using of OpenCL without explicit UMat arguments 2016-12-04 02:34:17 +03:00
Alexander Alekhin
4a095e4d66 Merge pull request #7777 from alalek:test_refactor 2016-12-02 20:09:56 +00:00
Alexander Alekhin
5032dae9ed test: refactor test to capture more information on failure
Core_ArithmMask.uninitialized
2016-12-02 18:54:27 +03:00
mshabunin
a0e771f545 Fixed valgrind issues in persistence functions 2016-12-02 18:41:25 +03:00
Vitaly Tuzov
ced81f72bc Added OpenVX based processing to LUT 2016-12-02 14:36:47 +03:00
Vadim Pisarevsky
924ac10159 Merge pull request #7649 from terfendail:ovx_meanstddev 2016-12-01 17:46:30 +00:00
Vadim Pisarevsky
0a775e43e1 Merge pull request #7659 from savuor:openvx_convert_depth 2016-12-01 17:44:49 +00:00
Vadim Pisarevsky
ddc5155a85 Merge pull request #7677 from terfendail:ovx_minmaxloc 2016-12-01 17:42:18 +00:00
mshabunin
695c518384 Updated TBB search script and code checks 2016-12-01 16:58:38 +03:00
Rostislav Vasilikhin
2b56b174e8 fixed: data types, empty input case 2016-11-29 17:52:50 +03:00
Rostislav Vasilikhin
0a6958813c added OpenVX call to Mat::convertTo() (w/o scaling) 2016-11-29 17:52:36 +03:00
Vitaly Tuzov
a4b9eb23d1 Added OpenVX based processing to meanStdDev 2016-11-29 16:59:25 +03:00
Vitaly Tuzov
e9cc0f6a4c Added OpenVX based processing to minMaxLoc 2016-11-29 15:33:48 +03:00
LaurentBerger
c56c0e140b Solve exception for 3D Mat 2016-11-29 12:10:33 +01:00
Vadim Pisarevsky
be0865406f Merge pull request #7548 from tomoaki0705:fixRngAvoidFmadd 2016-11-28 21:04:03 +00:00
Vadim Pisarevsky
a53f93ff8d Merge pull request #7710 from alalek:debug_check_matrelease 2016-11-25 14:24:23 +00:00
Alexander Alekhin
0bdea2b714 core: fix absdiff (non-optimized, fp) to prevent "-0" results 2016-11-23 13:55:38 +03:00
Alexander Alekhin
8019498c6e java tests fixes 2016-11-23 13:53:00 +03:00
Alexander Alekhin
d65df72754 java: fix testIsSubmatrix test 2016-11-23 13:51:37 +03:00
Alexander Alekhin
69949025db core: drop type/dims/rows/cols information in Mat::release() 2016-11-23 13:51:37 +03:00
Vadim Pisarevsky
9638dfcd85 Merge pull request #7641 from alalek:warnings 2016-11-22 13:31:26 +00:00
Vadim Pisarevsky
54d215902f Merge pull request #7627 from sovrasov:fs_vec_of_vec 2016-11-22 12:40:22 +00:00
Alexander Alekhin
30cdcfa554 warnings 2016-11-18 14:08:53 +03:00
Vladislav Sovrasov
7c266ffffe Add support of vector of vectors serialization to FileStorage 2016-11-16 13:37:30 +03:00
Philippe Renon
e79f83e573 calib3d: fix missing cv::redirectError symbol error
happens on msys2 with gcc 6.2.0
see also http://stackoverflow.com/questions/38552221/undefined-reference-to-cvredirecterror-while-creating-shared-build-of-opencv-3
2016-11-15 08:56:01 +01:00
Vadim Pisarevsky
6b7d570c34 Merge pull request #7539 from Tetragramm:90DegreeRotations 2016-11-11 20:30:25 +00:00
Tetragramm
24379fcb5f Use transpose() as suggested, because it works on pre-existing destination Mats. 2016-11-10 21:35:00 -06:00
Vadim Pisarevsky
a2d6d96ef1 Merge pull request #7161 from terfendail:shortline_fix 2016-11-10 16:02:20 +00:00
Pavel Vlasov
349d5ba012 --perf_instrument parameter now has int type and 0, 1, 2 modes (1 - simple trees, 2 - expanded trees for functions with same name but different calling address);
Maximum depth limit var was added to the instrumentation structure;

Trace names output console output fix: improper tree formatting could happen;
Output in case of error was added;

Custom regions improvements;

Improved timing and weight calculation for parallel regions; New TC (threads counter) value to indicate how many different threads accessed particular node;

parallel_for, warnings fixes and ReturnAddress code from Alexander Alekhin;
2016-11-08 10:18:05 +03:00
Tomoaki Teshima
676736bdb2 avoid using fmadd in RNG 2016-11-03 23:11:52 +09:00
Alexander Alekhin
712fa9a73c Merge pull request #7605 from tomoaki0705:fixBuildFp16Error 2016-11-03 07:41:42 +00:00
Tetragramm
ad5c50a923 Improve the efficiency as suggested by vpisarev.
Alter the Rotation enum to be unambiguous as to direction.
2016-11-02 17:44:13 -05:00
Vadim Pisarevsky
280cdb5b94 Merge pull request #7595 from sovrasov:fs_utf8_bom 2016-11-02 15:27:48 +00:00
Tomoaki Teshima
9ee6f10896 fix build error 2016-11-02 23:18:58 +09:00
Vadim Pisarevsky
545f573a6c Merge pull request #7596 from sovrasov:doc_core_clarify 2016-11-02 13:32:14 +00:00
Vadim Pisarevsky
bebd49d91b Merge pull request #7467 from tomoaki0705:featureCheckSimdUniversal 2016-11-02 12:30:55 +00:00
Vladislav Sovrasov
e955d17c51 Add new error messages 2016-11-02 14:53:56 +03:00
Vladislav Sovrasov
38483fe7a7 Skip UTF-8 BOM in FileStorage 2016-11-02 14:51:07 +03:00
Vladislav Sovrasov
33d82da436 Clarify documentation for cv::Algorithm::read 2016-11-02 13:51:16 +03:00
Vadim Pisarevsky
8944875258 Merge pull request #7526 from alalek:fix_arm_builds 2016-11-02 10:49:43 +00:00
Vadim Pisarevsky
7dd99258c7 Merge pull request #7584 from tomoaki0705:fixFp16BuildOldCompiler 2016-11-02 10:43:34 +00:00
Tomoaki Teshima
6d460bb602 fix build error on old compiler
* vget_lane_** accepts constant value, not variable
2016-10-31 23:20:44 +09:00
Sean Li
6f3483ade3 Correct the comment of Mat::diag(const Mat& d). 2016-10-29 16:01:23 +08:00
Tomoaki Teshima
cba22349b7 add universal hardware support check function
* use hasSIMD128 rather than calling checkHardwareSupport
  * add SIMD check in spartialgradient.cpp
  * add SIMD check in stereosgbm.cpp
  * add SIMD check in canny.cpp
2016-10-29 13:24:31 +09:00
Vadim Pisarevsky
ecb8fb964d Merge pull request #7572 from tomoaki0705:featureUniversalStereoSgbm 2016-10-28 15:34:11 +00:00
Tomoaki Teshima
b823c8e95c add universal intrinsic in StereoSGBM
* add 8 elements version of reduce operation
  * add tests for new universal intrinsic
2016-10-28 21:47:13 +09:00
Alexander Alekhin
33a5778a0e core: update CV_XADD
Allow to use custom implementations of CV_XADD (passed via -D of CXXFLAGS)
2016-10-27 13:22:13 +03:00
Alexander Alekhin
9b2b8404a0 Merge pull request #7553 from erichkeane:interlocked_add_fix 2016-10-27 07:03:18 +00:00
Erich Keane
ad6af6b9e4 Remove Intel Specific CV_XADD Definition
Intel supports __atomic_fetch_add, so it isn't necessary to use
a specific version otherwise.
2016-10-26 09:37:25 -07:00
Erich Keane
689cf79625 Correct cast for _InterlockedExchangeAdd on ICC
A bug in ICC improperly identified the first parameter as "void*"
rather than the proper "volatile long*".  This is scheduled to be
fixed in ICC in a future release.

This patch casts only to a "long*" to preserve backwards compatibility
with the ICC 16 and ICC 17 releases.
2016-10-25 14:18:55 -07:00
fegorsch
ddf0554fff Use colon in "%YAML:1.0" directive when persisting to YAML-files
In YAML 1.0 the colon is mandatory. See http://yaml.org/spec/1.0/#id2558635.

This also allows prior releases to read YAML files created with the current version.
2016-10-25 18:18:35 +02:00
Tetragramm
6f7bf653f7 Add 90 degree rotation methods. This provides a quick simple way of doing 90 degree rotations.
Also fix warnings that show up on other compilers in test builds.
2016-10-22 12:48:52 -05:00
Jiri Horner
c17afe0fab Merge pull request #6933 from hrnr:gsoc_all
[GSOC] New camera model for stitching pipeline

* implement estimateAffine2D

estimates affine transformation using robust RANSAC method.

* uses RANSAC framework in calib3d
* includes accuracy test
* uses SVD decomposition for solving 3 point equation

* implement estimateAffinePartial2D

estimates limited affine transformation

* includes accuracy test

* stitching: add affine matcher

initial version of matcher that estimates affine transformation

* stitching: added affine transform estimator

initial version of estimator that simply chain transformations in homogeneous coordinates

* calib3d: rename estimateAffine3D test

test Calib3d_EstimateAffineTransform rename to Calib3d_EstimateAffine3D. This is more descriptive and prevents confusion with estimateAffine2D tests.

* added perf test for estimateAffine functions

tests both estimateAffine2D and estimateAffinePartial2D

* calib3d: compare error in square in estimateAffine2D

* incorporates fix from #6768

* rerun affine estimation on inliers

* stitching: new API for parallel feature finding

due to ABI breakage new functionality is added to `FeaturesFinder2`, `SurfFeaturesFinder2` and `OrbFeaturesFinder2`

* stitching: add tests for parallel feature find API

* perf test (about linear speed up)
* accuracy test compares results with serial version

* stitching: use dynamic_cast to overcome ABI issues

adding parallel API to FeaturesFinder breaks ABI. This commit uses dynamic_cast and hardcodes thread-safe finders to avoid breaking ABI.

This should be replaced by proper method similar to FeaturesMatcher on next ABI break.

* use estimateAffinePartial2D in AffineBestOf2NearestMatcher

* add constructor to AffineBestOf2NearestMatcher

* allows to choose between full affine transform and partial affine transform. Other params are the as for BestOf2NearestMatcher
* added protected field

* samples: stitching_detailed support affine estimator and matcher

* added new flags to choose matcher and estimator

* stitching: rework affine matcher

represent transformation in homogeneous coordinates

affine matcher: remove duplicite code
rework flow to get rid of duplicite code

affine matcher: do not center points to (0, 0)
it is not needed for affine model. it should not affect estimation in any way.

affine matcher: remove unneeded cv namespacing

* stitching: add stub bundle adjuster

* adds stub bundle adjuster that does nothing
* can be used in place of standard bundle adjusters to omit bundle adjusting step

* samples: stitching detailed, support no budle adjust

* uses new NoBundleAdjuster

* added affine warper

* uses R to get whole affine transformation and propagates rotation and translation to plane warper

* add affine warper factory class

* affine warper: compensate transformation

* samples: stitching_detailed add support for affine warper

* add Stitcher::create method

this method follows similar constructor methods and returns smart pointer. This allows constructing Stitcher according to OpenCV guidelines.

* supports multiple stitcher configurations (PANORAMA and SCANS) for convenient setup
* returns cv::Ptr

* stitcher: dynamicaly determine correct estimator

we need to use affine estimator for affine matcher

* preserves ABI (but add hints for ABI 4)
* uses dynamic_cast hack to inject correct estimator

* sample stitching: add support for multiple modes

shows how to use different configurations of stitcher easily (panorama stitching and scans affine model)

* stitcher: find features in parallel

use new FeatureFinder API to find features in parallel. Parallelized using TBB.

* stitching: disable parallel feature finding for OCL

it does not bring much speedup to run features finder in parallel when OpenCL is enabled, because finder needs to wait for OCL device.

Also, currently ORB is not thread-safe when OCL is enabled.

* stitching: move matcher tests

move matchers tests perf_stich.cpp -> perf_matchers.cpp

* stitching: add affine stiching integration test

test basic affine stitching (SCANS mode of stitcher) with images that have only translation between them

* enable surf for stitching tests

stitching.b12 test was failing with surf

investigated the issue, surf is producing good result. Transformation is only slightly different from ORB, so that resulting pano does not exactly match ORB's result. That caused sanity check to fail.

* added size checks similar to other tests
* sanity check will be applied only for ORB

* stitching: fix wrong estimator choice

if case was exactly wrong, estimators were chosen wrong

added logging for estimated transformation

* enable surf for matchers stitching tests

* enable SURF
* rework sanity checking. Check estimated transform instead of matches. Est. transform should be more stable and comparable between SURF and ORB.
* remove regression checking for VectorFeatures tests. It has a lot if data andtest is the same as previous except it test different vector size for performance, so sanity checking does not add any value here. Added basic sanity asserts instead.

* stitching tests: allow relative error for transform

* allows .01 relative error for estimated homography sanity check in stitching matchers tests
* fix VS warning

stitching tests: increase relative error

increase relative error to make it pass on all platforms (results are still good).

stitching test: allow bigger relative error

transformation can differ in small values (with small absolute difference, but large relative difference). transformation output still looks usable for all platforms. This difference affects only mac and windows, linux passes fine with small difference.

* stitching: add tests for affine matcher

uses s1, s2 images. added also new sanity data.

* stitching tests: use different data for matchers tests

this data should yeild more stable transformation (it has much more matches, especially for surf). Sanity data regenerated.

* stitching test: rework tests for matchers

* separated rotation and translations as they are different by scale.
* use appropriate absolute error for them separately. (relative error does not work for values near zero.)

* stitching: fix affine warper compensation

calculation of rotation and translation extracted for plane warper was wrong

* stitching test: enable surf for opencl integration tests

* enable SURF with correct guard (HAVE_OPENCV_XFEATURES2D)
* add OPENCL guard and correct namespace as usual for opencl tests

* stitching: add ocl accuracy test for affine warper

test consistent results with ocl on and off

* stitching: add affine warper ocl perf test

add affine warper to existing warper perf tests. Added new sanity data.

* stitching: do not overwrite inliers in affine matcher

* estimation is run second time on inliers only, inliers produces in second run will not be therefore correct for all matches

* calib3d: add Levenberg–Marquardt refining to estimateAffine2D* functions

this adds affine Levenberg–Marquardt refining to estimateAffine2D functions similar to what is done in findHomography.

implements Levenberg–Marquardt refinig for both full affine and partial affine transformations.

* stitching: remove reestimation step in affine matcher

reestimation step is not needed. estimateAffine2D* functions are running their own reestimation on inliers using the Levenberg-Marquardt algorithm, which is better than simply rerunning RANSAC on inliers.

* implement partial affine bundle adjuster

bundle adjuster that expect affine transform with 4DOF. Refines parameters for all cameras together.

stitching: fix bug in BundleAdjusterAffinePartial

* use the invers properly
* use static buffer for invers to speed it up

* samples: add affine bundle adjuster option to stitching_detailed

* add support for using affine bundle adjuster with 4DOF
* improve logging of initial intristics

* sttiching: add affine bundle adjuster test

* fix build warnings

* stitching: increase limit on sanity check

prevents spurious test failures on mac. values are still pretty fine.

* stitching: set affine bundle adjuster for SCANS mode

* fix bug with AffineBestOf2NearestMatcher (we want to select affine partial mode)
* select right bundle adjuster

* stitching: increase error bound for matcher tests

* this prevents failure on mac. tranformation is still ok.

* stitching: implement affine bundle adjuster

* implements affine bundle adjuster that is using full affine transform
* existing test case modified to test both affinePartial an full affine bundle adjuster

* add stitching tutorial

* show basic usage of stitching api (Stitcher class)

* stitching: add more integration test for affine stitching

* added new datasets to existing testcase
* removed unused include

* calib3d: move `haveCollinearPoints` to common header

* added comment to make that this also checks too close points

* calib3d: redone checkSubset for estimateAffine* callback

* use common function to check collinearity
* this also ensures that point will not be too close to each other

* calib3d: change estimateAffine* functions API

* more similar to `findHomography`, `findFundamentalMat`, `findEssentialMat` and similar
* follows standard recommended semantic INPUTS, OUTPUTS, FLAGS
* allows to disable refining
* supported LMEDS robust method (tests yet to come) along with RANSAC
* extended docs with some tips

* calib3d: rewrite estimateAffine2D test

* rewrite in googletest style
* parametrize to test both robust methods (RANSAC and LMEDS)
* get rid of boilerplate

* calib3d: rework estimateAffinePartial2D test

* rework in googletest style
* add testing for LMEDS

* calib3d: rework estimateAffine*2D perf test

* test for LMEDS speed
* test with/without Levenberg-Marquart
* remove sanity checking (this is covered by accuracy tests)

* calib3d: improve estimateAffine*2D tests

* test transformations in loop
* improves test by testing more potential transformations

* calib3d: rewrite kernels for estimateAffine*2D functions

* use analytical solution instead of SVD
* this version is faster especially for smaller amount of points

* calib3d: tune up perf of estimateAffine*2D functions

* avoid copying inliers
* avoid converting input points if not necessary
* check only `from` point for collinearity, as `to` does not affect stability of transform

* tutorials: add commands examples to stitching tutorials

* add some examples how to run stitcher sample code
* mention stitching_detailed.cpp

* calib3d: change computeError for estimateAffine*2D

* do error computing in floats instead of doubles

this have required precision + we were storing the result in float anyway. This make code faster and allows auto-vectorization by smart compilers.

* documentation: mention estimateAffine*2D function

* refer to new functions on appropriate places
* prefer estimateAffine*2D over estimateRigidTransform

* stitching: add camera models documentations

* mention camera models in module documentation to give user a better overview and reduce confusion
2016-10-22 19:10:42 +03:00