Commit Graph

14634 Commits

Author SHA1 Message Date
Alexander Alekhin
1a3f1a31b2 ts: CV_ENUM fix static initialization order fiasco 2016-11-26 03:05:32 +03:00
Alexander Alekhin
3f37e34e76 highgui: g_thread_create deprecated warning 2016-11-26 03:01:39 +03:00
Alexander Alekhin
7dc673fd56 imgproc: fix findContours (submatrix input) 2016-11-25 18:25:26 +03:00
Vadim Pisarevsky
a53f93ff8d Merge pull request #7710 from alalek:debug_check_matrelease 2016-11-25 14:24:23 +00:00
Alexander Alekhin
7ad8e378ce Merge pull request #7719 from paroj:calib_ret 2016-11-25 09:22:08 +00:00
Alexander Alekhin
88ef8c996e Merge pull request #7709 from alalek:fix_java_tests 2016-11-24 16:15:56 +00:00
Pavel Rojtberg
e1503cc29e calibrateCamera: specifiy what kind of re-projection error is returned 2016-11-24 14:02:01 +01:00
guoxuedong
e69253a4fb Update exif.cpp
ExifReader::getExif may enter infinite loop with jpeg image which have no EOI.
For example, bytesToSkip may be set to 0 and fseek seems like fseek(f, -2 , SEEK_CUR) for image that end with RST7(FF D7) instead of EOI.
2016-11-24 11:08:11 +08:00
Alexander Alekhin
4fd00c1ae1 Merge pull request #7714 from onixie:master
Fix docs explaining the returnPoints argument of convexHull.
2016-11-23 17:44:05 +03:00
Rostislav Vasilikhin
7db43f9fff fixed wrong equivalence in YUV conversion (#7481)
* fixed wrong equivalence in YUV conversion

* fixed channel order from YVU to YUV
2016-11-23 17:39:18 +03:00
Vadim Pisarevsky
b8c875d4a1 Merge pull request #7707 from K-Shinotsuka:issue37 2016-11-23 14:15:02 +00:00
monoid911
b879126584 Fix docs explaining the returnPoints argument of convexHull. 2016-11-23 20:43:52 +09: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
fe29080d59 java: skip test in case of missed classes from opencv_contrib 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
a936cb087e calib3d: fix fisheye for test fisheyeTest.stereoCalibrateFixIntrinsic 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
Alexander Alekhin
8d662a1a28 Merge pull request #7640 from alalek:fix_test_tvl1 2016-11-23 10:50:30 +00:00
k-shinotsuka
284006e336 add NEON code for RGB2Luv_f. 2016-11-23 19:18:41 +09:00
Vadim Pisarevsky
c1ee798213 Merge pull request #7662 from K-Shinotsuka:issue34 2016-11-22 13:57:13 +00:00
Vadim Pisarevsky
af22b6c4a9 Merge pull request #7664 from K-Shinotsuka:issue35 2016-11-22 13:49:14 +00:00
Vadim Pisarevsky
b54bc2db1e Merge pull request #7665 from K-Shinotsuka:issue36 2016-11-22 13:44:42 +00: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
Vadim Pisarevsky
511c0c2e71 Merge pull request #7688 from alalek:fix_orb_test 2016-11-22 11:35:07 +00:00
Vadim Pisarevsky
7adb52b427 Merge pull request #7699 from alalek:test_hog_eps 2016-11-22 10:19:52 +00:00
Pavel Vlasov
dfb9c574a4 IPP 2017 filter2D fix;
filter2D IPP runtime check;
2016-11-21 17:18:03 +03:00
Alexander Alekhin
771fa5b8ac test: change EPS in Objdetect_HOGDetector tests 2016-11-21 14:59:06 +03:00
Arek
866f8eb1e7 Merge pull request #7695 from ArkadiuszRaj:aravis-release-bug-fix
* Aravis: fixing releasing object when no communication with camera is possible

* Removing unnecessary include
2016-11-21 04:22:43 +03:00
Alexander Alekhin
39d7ecc93b perf: disabled checks for magic numbers
Results are not bit-exact
2016-11-18 15:20:18 +03:00
Alexander Alekhin
dac37a0bc9 features2d: update rotation invariance test
Don't process keypoints near border, because after rotation border points
have contrast gradients with rotation border fill.
2016-11-18 15:20:03 +03:00
Alexander Alekhin
30807b26c7 Merge pull request #7644 from alalek:cmake_python_install 2016-11-18 12:19:00 +00:00
Alexander Alekhin
30cdcfa554 warnings 2016-11-18 14:08:53 +03:00
Alexander Alekhin
40aa8aa862 ffmpeg: check return value 2016-11-18 13:26:19 +03:00
Alexander Alekhin
12569dc730 Merge pull request #7625 from souch55:Fixapi 2016-11-17 17:54:25 +00:00
Alexander Alekhin
a19cb20b23 Merge pull request #7673 from pengli:deriv 2016-11-17 09:40:27 +00:00
Li Peng
6cb73356b1 laplacian ocl kernel optimization
This ocl kernel is 46%~171% faster than current laplacian 3x3
ocl kernel in the perf test, with image format "CV_8UC1".

Signed-off-by: Li Peng <peng.li@intel.com>
2016-11-17 12:01:02 +08:00
Vladislav Sovrasov
7c266ffffe Add support of vector of vectors serialization to FileStorage 2016-11-16 13:37:30 +03:00
k-shinotsuka
cf5c400ecb add SSE code for RGB2HLS_f. 2016-11-16 00:46:13 +09: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
sourin
94b5a74067 Fixed with review comments. 2016-11-15 12:16:15 +05:30
Alexander Alekhin
c93fb14dd2 Merge pull request #7653 from pengli:deriv 2016-11-14 13:40:04 +00:00
Alexander Alekhin
099be88f02 Merge pull request #7638 from ArkadiuszRaj:move-exif-from-jpeg-to-loadsave 2016-11-14 13:37:42 +00:00
Juha Reunanen
5bb08bae28 Merge pull request #7464 from reunanen:test-7409-7458
Change contour test images to be very wide (#7464)

* Change contour test images to be very wide (#7409, #7458)

Unfortunately, slows down the tests.

* Decrease the number of contour test cases, in order to (at least partially) offset the test run duration increase caused by making the test images wider

* Don't test with very wide images on 32-bit architectures
2016-11-14 16:31:29 +03:00
Li Peng
8d4a7d3dcc sobel and scharr ocl kernel optimization
It improves 108%~230% performance in the perf test
with image format "CV_8UC1" and kernel size 3.

Signed-off-by: Li Peng <peng.li@intel.com>
2016-11-14 15:34:59 +08:00
k-shinotsuka
a909527a39 add SSE code for HLS2RGB_f. 2016-11-14 01:44:33 +09:00
k-shinotsuka
614ce7743e add SSE code for HSV2RGB_f. 2016-11-13 23:46:21 +09:00
Vadim Pisarevsky
a679e4ca7c Merge pull request #7656 from alalek:python_warning 2016-11-11 20:37:38 +00:00
Vadim Pisarevsky
b587c57b2a Merge pull request #7654 from souch55:Fixgtk 2016-11-11 20:35:24 +00:00
Vadim Pisarevsky
6b7d570c34 Merge pull request #7539 from Tetragramm:90DegreeRotations 2016-11-11 20:30:25 +00:00
Alexander Alekhin
a88b94cc44 build: fix warning in python parser
/usr/lib/python3.5/re.py:203: FutureWarning: split() requires a non-empty pattern match.
  return _compile(pattern, flags).split(string, maxsplit)
2016-11-11 17:45:12 +03:00
Vadim Pisarevsky
4ebdf4938a Merge pull request #7634 from paroj:undistpt 2016-11-11 14:13:18 +00:00
sourin
879315f2fe Fix error gtk 2016-11-11 10:55:38 +05:30
Tetragramm
24379fcb5f Use transpose() as suggested, because it works on pre-existing destination Mats. 2016-11-10 21:35:00 -06:00
Alexander Alekhin
acaa1e1b29 Merge pull request #7628 from sergiud:viz-vtkUnsignedCharArray-delete 2016-11-10 17:04:04 +00:00
Alexander Alekhin
b2e0873af1 Merge pull request #7629 from alalek:issue_7626 2016-11-10 16:35:08 +00:00
Vadim Pisarevsky
a2d6d96ef1 Merge pull request #7161 from terfendail:shortline_fix 2016-11-10 16:02:20 +00:00
Alexander Alekhin
edcbc15a90 cmake: python installation
Also fixes issue with empty PYTHON_PACKAGES_PATH (cross-compilation mode)
2016-11-10 17:53:53 +03:00
Arkadiusz Raj
40778fa30a Change name to minimize confusion 2016-11-10 15:31:34 +01:00
Arkadiusz Raj
4a9c84c570 Add static to local function 2016-11-10 15:04:28 +01:00
Alexander Alekhin
45bf60d18c perf: remove tvl1 check for magic numbers, reduce number of samples 2016-11-10 15:41:44 +03:00
Alexander Alekhin
a01a4c4b3b test: tvl1 test check update 2016-11-10 15:39:18 +03:00
Arkadiusz Raj
f893ee5cec Added IMREAD_IGNORE_ORIENTATION flag 2016-11-09 18:09:22 +01:00
Pavel Rojtberg
3609343acf undistortPoints: only consider distCoeffs if present
iters should be 0 if we have no distortion. Also skip tilt distortion in
that case.
Furthermore move variable declarations to usage sites.
2016-11-09 16:11:26 +01:00
Alexander Alekhin
6991c24a27 Merge pull request #7632 from paroj:homgpt_int 2016-11-09 14:55:10 +00:00
Alexander Alekhin
17ffb28807 Merge pull request #7602 from mshabunin:fix-opencl-warnings 2016-11-09 12:35:00 +00:00
Pavel Rojtberg
25061b4280 convertPointsToHomogeneous: fix output type for depth == CV_32S 2016-11-09 11:35:12 +01:00
Alexander Alekhin
f1d93cb23b Merge pull request #7624 from pengli:gaussian_blur 2016-11-09 09:25:25 +00:00
Alexander Alekhin
183c75358b imgproc: fix trailingZeros for MSVS 2010 2016-11-08 16:48:41 +03:00
Sergiu Deitsch
d4b501e734 viz: free new[] allocated arrays using delete[] instead of free
Clang's AddressSanitizer throws an alloc-dealloc-mismatch (operator
new[] vs free) error here.
2016-11-08 13:03:22 +01: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
Li Peng
8f63f51e81 gaussian blur ocl kernel optimization
This ocl kernel is for 3x3 kernel size and CV_8UC1 format
It is 115% ~ 300% faster than current ocl path in perf test

python ./modules/ts/misc/run.py -t imgproc --gtest_filter=OCL_GaussianBlurFixture*

Signed-off-by: Li Peng <peng.li@intel.com>
2016-11-08 11:22:26 +08:00
Alexander Alekhin
442380bfac Merge pull request #7585 from pengli:morph_filter 2016-11-07 17:11:32 +00:00
mshabunin
3e28d51779 Fixed several OpenCL compiler warnings 2016-11-07 16:49:12 +03:00
Li Peng
35198b84a4 morph ocl kernel for erode and dilate filter
This kernel is for CV_8UC1 format and 3x3 kernel size,
It is about 33% ~ 55% faster than current ocl kernel with below perf test

python ./modules/ts/misc/run.py -t imgproc --gtest_filter=OCL_ErodeFixture*
python ./modules/ts/misc/run.py -t imgproc --gtest_filter=OCL_DilateFixture*

Also add accuracy test cases for this kernel, the test command is

./bin/opencv_test_imgproc --gtest_filter=OCL_Filter/MorphFilter3x3*

Signed-off-by: Li Peng <peng.li@intel.com>
2016-11-04 12:24:24 +08:00
Tetragramm
17df65e666 Fix the OpenCL portion to match the c++ code.
Fix an undiscovered bug in the c++ code.
2016-11-03 20:41:16 -05:00
Alexander Alekhin
d1bbc0b6e6 Merge pull request #7604 from rokm:highgui-qt 2016-11-03 19:24:52 +00:00
Tomoaki Teshima
676736bdb2 avoid using fmadd in RNG 2016-11-03 23:11:52 +09:00
Vadim Pisarevsky
3dc022ae84 Merge pull request #7423 from grahamfyffe:leading_edges 2016-11-03 11:20:43 +00: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
6fceb1dd59 Merge pull request #7601 from sovrasov:remap_big_img_assert 2016-11-02 14:17:04 +00: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
Vadim Pisarevsky
050731c4d2 Merge pull request #7552 from es0m:master 2016-11-02 12:12:09 +00:00
Rok Mandeljc
baf613bc5c highgui: window_QT: added missing virtual method specifier
Fixes #7603, which was caused by OCVViewPort::icvmouseProcessing
not being declared as virtual, and hence was not overriden by
DefaultViewPort::icvmouseProcessing (which does the inverse
coordinate mapping).
2016-11-02 13:11:51 +01: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
af01267f23 Add assertion to prevent processing of large images in remap 2016-11-02 14:17:56 +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
94d879737b Merge pull request #7582 from K-Shinotsuka:issue32 2016-11-02 10:48:29 +00:00
Vadim Pisarevsky
01f355dfaa Merge pull request #7583 from K-Shinotsuka:issue33 2016-11-02 10:47:33 +00:00
Vadim Pisarevsky
7dd99258c7 Merge pull request #7584 from tomoaki0705:fixFp16BuildOldCompiler 2016-11-02 10:43:34 +00:00
k-shinotsuka
a7db950b66 add SSE code for Lab2RGB_f. 2016-11-01 22:33:58 +09:00
Alexander Alekhin
6c12533160 Merge pull request #7571 from panxiaochun:CvVideoCamera_stop 2016-10-31 17:35:41 +00:00
Alexander Alekhin
811eb76277 Merge pull request #7497 from abratchik:java.wrapper.fix.3.1 2016-10-31 17:24:18 +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
Eric Sommerlade
049a894986 fixed detection_based_tracker on visual studio 2013 and later
modules/objectdetect/src/detection_based_tracker.cpp: made unique_lock<mutex> local to each function
samples/cpp/dbt_face_detection.cpp: fixed warnings on loop in Visual Studio
2016-10-31 11:07:09 +00:00
Alexander Alekhin
522cfa77b8 test: don't check magic values in stitching perf test 2016-10-31 13:37:59 +03:00
abratchik
f978ee613e fix for #7510, #7511 and #7512 2016-10-31 11:07:56 +04:00
abratchik
78874c568e fix java wrapper autotests 2016-10-31 10:06:32 +04:00
Alexander Alekhin
4c66772783 Merge pull request #7516 from sovrasov:find_contours_fix 2016-10-30 08:33:12 +00:00
Alexander Alekhin
51f2b27bcb Merge pull request #7574 from Tytan:expcomp_before_seams 2016-10-30 08:28:36 +00:00
k-shinotsuka
c1c7c7f83e add SSE code for Luv2RGB_f. 2016-10-30 14:50:18 +09:00
Vadim Pisarevsky
7fe0fb6be7 Merge pull request #7580 from seanlis:wrong_diag_comment 2016-10-29 21:30:26 +00:00
Vadim Pisarevsky
7b532cea89 Merge pull request #7540 from K-Shinotsuka:issue31 2016-10-29 21:28:25 +00:00
Vadim Pisarevsky
2b7866f21b Merge pull request #7503 from pengli:box_filter_v2 2016-10-29 21:20:06 +00:00
Sean Li
6f3483ade3 Correct the comment of Mat::diag(const Mat& d). 2016-10-29 16:01:23 +08:00
k-shinotsuka
992795d47d add SSE code for RGB2Luv_f. 2016-10-29 15:28:31 +09: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
Quentin
bbd4a0eb51 Compensate exposure before finding seams 2016-10-28 17:04:05 +02: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
7f2ac764ae Merge pull request #7561 from paroj:winvisible 2016-10-28 11:31:04 +00:00
Pavel Rojtberg
358ec04413 highgui: add property WND_PROP_VISIBLE
checks whether the window exists and is visible. On QT closing a window
merley hides it, so the common hack for checking whether a window exists

exists = cv2.getWindowProperty(.., 0) >= 0

does not work.
2016-10-28 11:35:02 +02:00
Vladislav Sovrasov
56c133d459 Disable redundant border initialization in findContours 2016-10-28 11:05:54 +03:00
panxiaochun
bec3479f9e fix the problem:repeatedly stop cause app crash 2016-10-28 15:50:37 +08:00
panxiaochun
f888f47102 remove self. in release method 2016-10-28 14:48:49 +08:00
panxiaochun
03a9fd46c7 fix the problem: leak memory when repeatedly start and stop 2016-10-28 11:18:33 +08:00
Alexander Alekhin
bdfb4decb2 Merge pull request #7554 from lupustr3:pvlasov/morph_isolated 2016-10-27 16:51:03 +00: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
Pavel Vlasov
f07525031b BORDER_ISOLATED support for Laplacian, boxFilter and morphology; 2016-10-27 09:53:19 +03: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
Li Peng
3607da9f6b ocl kernel performance optimization for box filter
The optimization is for CV_8UC1 format and 3x3 box filter,
it is 15%~87% faster than current ocl kernel with below perf test

./modules/ts/misc/run.py -t imgproc --gtest_filter=OCL_BlurFixture*

Also add test cases for this ocl kernel.

Signed-off-by: Li Peng <peng.li@intel.com>
2016-10-26 11:56:11 +08: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
Vladislav Sovrasov
c55890f637 Enable chessboard detector test on Ubuntu 2016-10-25 11:53:53 +03:00
Vladislav Sovrasov
34df4ae02a Add a regression test, fix documentation 2016-10-25 11:38:07 +03:00
Vladislav Sovrasov
1f4f50b9dc findContours: integrate workaroung to allow contours detection on image border 2016-10-25 11:38:07 +03:00
Vladislav Sovrasov
f5592fd21b Fix wrong default mask value in floodFill 2016-10-25 11:16:59 +03: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
Alexander Alekhin
de35c59ba4 Merge pull request #7517 from paroj:pp_dpdf 2016-10-22 16:16:24 +00: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
Arek
e77bc24b96 Merge pull request #7518 from ArkadiuszRaj:aravis-buffer-status
Aravis several updates

* Fix adressing camera with id=0

* Aravis buffer property control & status added

* Modify of autoexposure algorith, ream frame ID from aravis + new properites

* Change of macro name

* VideoCapture now returns no frame on camera disconnecion

* Allow aravis-0.4 usage, proper camera object release.
2016-10-22 19:07:55 +03:00
Tetragramm
c6772a8f5d Fix CLAHE distribution.
Fix CLAHE for 16-bit images.
2016-10-21 19:54:42 -05:00
Alexander Alekhin
f129950dec viz: update for VTK6.2+
PCL PR 1205
2016-10-21 18:33:38 +03:00
Alexander Alekhin
c724d61219 Revert "Fix for VTK6.2 issue."
This reverts commit f45da9866a.
2016-10-21 17:57:33 +03:00
Sean McBride
943ac96526 Eliminated use of obsolete 'register' keyword
Fixes clang warnings about uses of this obsolete keyword.
2016-10-20 20:19:14 -04:00
Alexander Alekhin
c57f145e90 ts: update run.py
Add information about python bindings
2016-10-20 16:54:51 +03:00
Alexander Alekhin
a901cc542b test: fix tolerance perf check for Exp/Log/Sqrt 2016-10-20 16:54:48 +03:00
Alexander Alekhin
43c48e2ed1 test: update Div and ConvertScaleAbs perf tests 2016-10-20 16:54:46 +03:00
Alexander Alekhin
ee4b78fcce test: change condition in Photo_Decolor 2016-10-20 16:54:43 +03:00
Alexander Alekhin
4439ba09f9 test: update condition for Calib3d_StereoCalibrate 2016-10-20 16:54:40 +03:00
Alexander Alekhin
db451f20df test: don't use points on single line for solvePnP 2016-10-20 16:54:38 +03:00
Alexander Alekhin
7a9ed39655 test: update HoughLines perf test 2016-10-20 16:54:35 +03:00
Alexander Alekhin
5bafc1db75 test: fix tolerance
cv::rand result is not bitexact for floating-point numbers
2016-10-20 16:54:33 +03:00
Alexander Alekhin
abad2ca76c test: fix tolerance
cv::rand result is not bitexact for floating-point numbers
2016-10-20 16:54:30 +03:00
Alexander Alekhin
7793299e53 Merge pull request #7507 from vrabaud:iplimage_overflow 2016-10-20 13:04:54 +00:00
Vincent Rabaud
a89aa8c90a Fix imageSize overflow in IplImage 2016-10-20 11:23:45 +02:00
Pavel Rojtberg
01b592c8e1 calibrateCamera: mask f_x when using FIX_ASPECT_RATIO
this avoids a singular Jacobian such that LM converges when DECOMP_LU is
used.
2016-10-19 14:20:39 +02:00
Jake Kesinger
bd50553149 videoio: Fix for valgrind warning in icvGetPropertyCAM_V4L
https://github.com/opencv/opencv/issues/7380
2016-10-18 14:18:35 -04:00
Maksim Shabunin
157a90ac46 Merge pull request #7513 from abratchik:fix.wrappers.for.video.tracking 2016-10-18 12:09:14 +00:00
abratchik
c72fbd7a14 fix for #7501 2016-10-18 09:38:57 +04:00
Guillaume Jacob
df2b591896 videoio: fix segfault if CONVERT_RGB is false (issue #7465) 2016-10-17 23:01:30 +02:00
Alexander Alekhin
07711e404b Merge pull request #7506 from mshabunin:x11-collide-warning 2016-10-17 19:50:30 +00:00
Alexander Alekhin
5dfb810327 video: fix optflow test: NAN results shouldn't bypass checks 2016-10-17 20:06:45 +03:00
Alexander Alekhin
8213e57f3b Merge pull request #7494 from tomoaki0705:fixVideoLKPyramidARM 2016-10-17 17:06:26 +00:00
Alexander Alekhin
505c19bc20 Merge pull request #7505 from LukeZheZhu:filterSmall_double_support 2016-10-17 10:33:52 +00:00
Vadim Pisarevsky
27c8f8a1d4 Merge pull request #7443 from Tytan:akaze 2016-10-17 09:22:52 +00:00
mshabunin
6a66af72c8 Added warning about possible X11 macro collision 2016-10-17 12:07:27 +03:00
LukeZhu
ef47bcc88b Fix the problem: filterSmall.cl report error with double 2016-10-17 15:12:42 +08:00
Alexander Alekhin
18327aed30 Merge pull request #7496 from abratchik:java.wrapper.fix.3.1 2016-10-16 16:49:33 +00:00
Arek
4ea27061ee Merge pull request #7472 from ArkadiuszRaj:aravis-autoexposure
Aravis SDK: Basic software based autoexposure control

* Basic software based autoexposure control

* Aravis autoexposure: skip frame taken while changing exposure setup
2016-10-16 19:14:58 +03:00
abratchik
8da1303179 add vector_vector_KeyPoint support to python wrappers 2016-10-16 19:09:35 +04:00
abratchik
adbb1471fc fix regression issues in Feature2D and DescriptorMatcher interfaces 2016-10-16 13:36:40 +04:00
Tomoaki Teshima
ea4ff91861 fix error from performance test of LK pyramid 2016-10-16 17:21:37 +09:00
Feng Zhoutian
316fece020 fix the problem: the headers of cudev module are not installed if BUILD_opencv_world 2016-10-16 02:22:28 +08:00
Alexander Alekhin
1ae27eb696 Merge pull request #7476 from abratchik:java.wrapper.fix.3.1 2016-10-15 09:21:45 +00:00
abratchik
4207ebbce7 fix for VideoCapture crash 2016-10-15 08:16:31 +04:00
Vitaly Tuzov
1d045f2731 Added test for drawing beyond 32768 column 2016-10-14 18:38:01 +03:00
Vitaly Tuzov
26c9889c6b Fix for incorrect line drawing beyond 32768 row or column 2016-10-14 18:37:59 +03:00
Alexander Alekhin
de85680a6a Merge pull request #7483 from paroj:addtext 2016-10-14 14:06:50 +00:00
Pavel Rojtberg
a37a6bd783 fix BGR <> RGB swap
we are drawing on a BGR image declared as RGB, so we should not swap
components here either.
2016-10-14 12:06:50 +02:00
Pavel Rojtberg
8cc09f1784 highgui: allow wrapping cv::addText
also correctly forward spacing parameter in fontQt
2016-10-14 12:06:49 +02:00
Alexander Alekhin
0d0a399a13 Merge pull request #7468 from StevenPuttemans:fix_single_scale_detection 2016-10-13 16:19:18 +00:00
Maksim Shabunin
699c25a4be Merge pull request #7471 from alalek:fix_java_generator 2016-10-13 15:21:39 +00:00
StevenPuttemans
ca762a6ba7 allow minObjectSize==maxObjectSize for single scale detection capability 2016-10-13 16:05:23 +02:00
abratchik
084c595855 fix for legacy FeatureDetector and DescriptorMatcher classes 2016-10-13 14:45:59 +04:00
Vadim Pisarevsky
4ed40fd694 Merge pull request #7432 from abratchik:java.wrapper.fix.3.1 2016-10-12 19:54:03 +00:00
Vadim Pisarevsky
4acda3f609 Merge pull request #7428 from alalek:cmake_fix_compiler_flags_detection 2016-10-12 19:38:25 +00:00
Alexander Alekhin
c16c803fe9 java: integrate code from base modules
To resolve undefined "Mat_to_vector_KeyPoint" error
2016-10-12 18:01:51 +03:00
Alexander Alekhin
994815fbd4 Merge pull request #7413 from tomoaki0705:featureUniversalThreshold 2016-10-12 10:01:37 +00:00
Alexander Alekhin
994c682b77 Merge pull request #7455 from tomoaki0705:featureUniversalLkPyramid 2016-10-12 09:57:53 +00:00
Alexander Alekhin
685a050339 Merge pull request #7431 from ArkadiuszRaj:pgm-16bit 2016-10-12 09:52:04 +00:00
Juha Reunanen
0f387cda8f Merge pull request #7451 from reunanen:issue-7409
Fix findContours crash for very large images (#7451)

* Cast step to size_t in order to avoid integer overflow when processing very large images

* Change assert to CV_Assert
2016-10-12 10:34:51 +03:00
Alexander Alekhin
6373e24bd3 Merge pull request #7441 from catree:add_distortion_images 2016-10-12 07:30:52 +00:00
Tomoaki Teshima
1ef740fa2c use universal intrinsic implementation for calcSharrDeriv 2016-10-11 20:32:33 +09:00
Tomoaki Teshima
ea6410d1e7 use universal intrinsic in threshold
* add performance test for 32F and 64F threshold
  * requires update of opencv_extra
2016-10-11 18:00:41 +09:00
abratchik
789b35d813 improved fix for java wrapper generator (gen_java.py) to avoid generation of java methods with duplicate signatures(v3) 2016-10-11 02:47:02 +04:00
Alexander Alekhin
73a8fa8e6e Merge pull request #7447 from alalek:ocl_fix_svm 2016-10-10 20:55:08 +00:00
Alexander Alekhin
f11715b6c3 Merge pull request #7430 from ArkadiuszRaj:aravis 2016-10-10 20:54:14 +00:00
Alexander Alekhin
fe8501c931 ocl: fix SVM code 2016-10-10 20:52:30 +03:00
Alexander Alekhin
218f7574f9 Merge pull request #7440 from mschoeneck:Prefer_OCL_befor_IPP_for_Sobel_and_Scharr 2016-10-10 10:45:27 +00:00
StevenPuttemans
947f32d2e0 add border replicate note 2016-10-10 09:55:13 +02:00
ArkadiuszRaj
19bc3f4d17 Chenge arv_camera_abort_acquisition to arv_camera_stop_acquisition 2016-10-09 20:40:00 +02:00