Commit Graph

2752 Commits

Author SHA1 Message Date
Alexander Alekhin
71c6cb9c22 imgproc(getPerspectiveTransform): solve(DECOMP_SVD -> LU) 2018-07-13 15:31:33 +03:00
Alexander Alekhin
2170811e48 imgproc(perf): update getPerspectiveTransform perf test
Function is very fast, so 0.000 ms results are useless.
1000 runs requires 25ms on i7-6700K.
2018-07-13 15:31:33 +03:00
Alexander Alekhin
b09a4a98d4 opencv: Use cv::AutoBuffer<>::data() 2018-07-04 19:11:29 +03:00
gnthibault
b46fef327e Fixed Assertin error due to Size.area() overflowing 2018-06-08 11:22:36 +02:00
Vadim Pisarevsky
5e5d997dff Merge pull request #11620 from terfendail:hmmorph_fix 2018-06-07 11:19:21 +00:00
Vitaly Tuzov
2e22f8e790 Fix for morphologyEx MORPH_HITMISS mode 2018-06-06 21:04:17 +03:00
Alexander Alekhin
6912c20380 Merge pull request #11659 from take1014:snippet_11597 2018-06-01 16:48:10 +00:00
take1014
4ec9afac57 add imgproc snippets 2018-06-01 23:42:00 +09:00
Vadim Pisarevsky
d734e83af0
Hsv2rgb univ intrin (#11637)
* add universal intrinsics for HSV2RGB_b

* rewritten HSV2RGB_b without using extra universal intrinsics

* removed unused variable

* undo changes in v_load_deinterleave
2018-05-31 21:59:45 +03:00
Alexander Alekhin
0349e8c9af Merge pull request #11608 from take1014:hist_11544 2018-05-31 16:44:02 +00:00
Vadim Pisarevsky
7d19bd6c19 Merge pull request #11634 from vpisarev:empty_mat_with_types_2
fixes handling of empty matrices in some functions (#11634)

* a part of PR #11416 by Yuki Takehara

* moved the empty mat check in Mat::copyTo()

* fixed some test failures
2018-05-31 16:36:39 +00:00
take1014
229e8b1b18 Correct handling when IPP is enabled 2018-05-31 22:54:32 +09:00
yuki takehara
ed207d79e7 Merge pull request #11108 from take1014:hough_4303
* Added accumulator value to the output of HoughLines and HoughCircles

* imgproc: refactor Hough patch

- eliminate code duplication
- fix type handling, fix OpenCL code
- fix test data generation
- re-generated test data in debug mode via plain CPU code path
2018-05-23 20:42:12 +00:00
yuki takehara
2d5d98ec0f Merge pull request #11551 from take1014:filter2d_10683
* Add arguments to dftFilter2D

* test: add expected test values
2018-05-23 20:25:11 +00:00
Alexander Alekhin
471c17321f improve code quality
- eliminate rand() calls
- non initialized members/ variables
- unused return values
- missing/useless NULL checks
2018-05-22 17:08:31 +03:00
Alexander Alekhin
085b27fc3d Merge pull request #11390 from dkurt:east_text_detection 2018-05-21 13:02:29 +00:00
shengyu
72d3e14e8f fix wrong indentation on github page (tab to space) 2018-05-19 11:23:51 +08:00
Dmitry Kurtaev
07dc6d2b45 Return a convex hull from rotatedRectangleIntersection 2018-05-18 14:20:17 +03:00
Alexander Alekhin
703f79b757 tests: add "bigdata" tests 2018-05-15 15:56:26 +03:00
Vadim Pisarevsky
e0dbe5cfcc
handle huge matrices correctly (#11505)
* make sure that the matrix with more than INT_MAX elements is marked as non-continuous, and thus all the pixel-wise functions process it correctly (i.e. row-by-row, not as a single row, where integer overflow may occur when computing the total number of elements)
2018-05-14 15:29:14 +03:00
Vadim Pisarevsky
9e3b6a228a Merge pull request #11418 from K-Shinotsuka:issue42 2018-05-10 15:15:04 +00:00
Vadim Pisarevsky
566cb5e3d8 Merge pull request #11430 from K-Shinotsuka:issue43 2018-05-10 15:14:39 +00:00
k-shinotsuka
ecb4ea8f76 add universal intrinsics for RGB2HSV_f 2018-05-04 00:58:46 +09:00
k-shinotsuka
a5f68e98f4 add universal intrinsics for HLS2RGB_f 2018-05-03 23:50:38 +09:00
Tomoaki Teshima
87a4f4ab3a Merge pull request #11409 from tomoaki0705/fixCLAHEfailure
Arm: fix the test failure of OCL_Imgproc/CLAHETest.Accuracy on ODROID-XU4 (#11409)

* fix the test failure of OCL_Imgproc/CLAHETest.Accuracy on ODROID-XU4
  * avoid the race condition in the reduce

* imgproc(ocl): simplify CLAHE code

* remove unused class
2018-04-27 16:41:56 +03:00
Alexander Alekhin
9166e6052b imgproc: fixed fixedpoint coding style
- fixed wrong condition (always true)
- replaced unnecessary shift operation: '>> 63' to '< 0'
- used CV_BIG_INT()/CV_BIG_UINT() macros
2018-04-25 17:33:57 +03:00
Alexander Alekhin
469dc6ac42 imgproc: fix fixed point build
avoid using of templated 'operator T ()'
2018-04-25 16:34:44 +03:00
Alexander Alekhin
6b581c4e51 build: unreachable code after CV_Error() (part 2) 2018-04-24 16:03:40 +03:00
Alexander Alekhin
f659f80c7f Merge pull request #11374 from lupustr3:pvlasov/morph_big_fix 2018-04-23 09:14:23 +00:00
Pavel Vlasov
a42789f330 IPP morphology with big images hotfix. 2018-04-23 10:50:20 +03:00
Alexander Alekhin
c8b515ea69 Merge pull request #11315 from tomoaki0705:featureComparePixelCount 2018-04-20 14:50:40 +00:00
Alexander Alekhin
12e8e33144 build: enable -Wimplicit-fallthrough warning for OpenCV modules 2018-04-19 19:54:03 +03:00
Vadim Pisarevsky
7ea5029ae5
Grabcut with frozen models (#11339)
* model is not learned when grabcut is called with GC_EVAL

* fixed test, was writing to wrong file.

* modified patch by Iwan Paolucci; added GC_EVAL_FREEZE_MODEL in addition to GC_EVAL (which semantics is retained)
2018-04-19 15:23:50 +03:00
Alexander Alekhin
ad2127765f Merge pull request #11309 from K-Shinotsuka:issue41 2018-04-19 10:58:00 +00:00
Tomoaki Teshima
98d9369a38 add new comparison to tolerate with rounding error
* restore resize of carotene
  * clean up the source code
  * remove unused member function (Near)
  * add strict test on the border
2018-04-19 17:31:42 +09:00
Vadim Pisarevsky
b8b7ca7302
Rewite polar transforms (#11323)
* Rewrite polar transformations

- A new wrapPolar function encapsulate both linear and semi-log remap
- Destination size is a parameter or calculated automatically to keep objects size between remapping
- linearPolar and logPolar has been deprecated

* Fix build warning and error in accuracy test

* Fix function name to warpPolar

* Explicitly specify the mapping mode, so we retain all the parameters as non-optional.

Introduces WarpPolarMode enum to specify the mapping mode in flags

* resolves performance warning on windows build

* removed duplicated logPolar and linearPolar implementations
2018-04-17 15:50:52 +03:00
k-shinotsuka
b3755ae670 add universal intrinsics for RGB2HLS_f 2018-04-17 19:37:36 +09:00
Alexander Alekhin
59b413c8a1 imgproc(ipp): disable parallel GaussianBlur 2018-04-16 13:31:52 +03:00
Alexander Alekhin
cfaca4327b Merge pull request #11169 from tomoaki0705:universalRemap 2018-04-13 13:24:06 +00:00
Alexander Alekhin
a2d6ee2d31 Merge pull request #11305 from tomoaki0705:typoNVIDIA 2018-04-13 12:56:42 +00:00
Tomoaki Teshima
a82e70cd40 remove raw SSE2/NEON implementation from imgwarp.cpp
* use universal intrinsic instead of raw intrinsic
  * add 2 channels de-interleave on x86 platform
  * add v_int32x4 version of v_muladd
  * add accumulate version of v_dotprod based on the commit from seiko2plus on bf1852d
  * remove some verify check in performance test
  * avoid the out of boundary access and keep the performance
2018-04-13 21:19:16 +09:00
Tomoaki Teshima
a40354d16f use correct name for NVIDIA
* remove NVidia and Nvidia
  * replace Cuda with CUDA
  * keep the letters for API
2018-04-13 20:33:19 +09:00
Vitaly Tuzov
c80a168d9d Updated warpAffine test to ensure bit-exactness for CV_8U (#10921)
* Updated warpAffine test to ensure bit-exactness for CV_8U

* Updated invertAffineTransform to bit-exact evaluation
2018-04-11 18:08:29 +03:00
Vitaly Tuzov
62cf71002e Bit-exact GaussianBlur performance update (#10898)
* Added custom implementation for NxN bit-exact GaussianBlur

* Reworked fixedpoint interface a bit

* Reworked horizontal line estimation for bit-exact GaussianBlur

* Reworked vertical line estimation for bit-exact GaussianBlur

* Updated range estimation for vectorized part of bit-exact GaussianBlur evaluation
2018-04-11 18:07:48 +03:00
Alexander Alekhin
d2d9fd6945 build: fix MSVS build problems
with 'CL=/permissive-'
2018-04-10 14:50:56 +03:00
shimat
68db42e9be fix LSD test (wrong detector kind) 2018-04-10 11:38:35 +09:00
Alexander Alekhin
b76ce0e0a4 Merge pull request #11253 from mshabunin:decrease-tbb-dependency 2018-04-09 16:03:34 +00:00
shimat
e172935658 LSD: support vector<Vec4i> lines (#11042)
* add LSD supportsVec4iResult

* LineSegmentDetector.drawSegments: support vector<Vec4i>

* test_lsd.cpp: replace detect()

* test_lsd.cpp: add compareSegments tests

* lsd.cpp: LSD.compareSegments support Vec4i

* test_lsd.cpp: fix trailing whitespace
2018-04-09 17:31:56 +03:00
Vadim Pisarevsky
20334e3f09 Merge pull request #11264 from K-Shinotsuka:issue39 2018-04-09 13:20:48 +00:00
k-shinotsuka
fbdcc0e8e4 add universal intrinsics for HSV2RGB_f 2018-04-08 01:47:22 +09:00
Alexander Alekhin
15837b43ca imgproc: don't call .unlock() on non-holded mutex in houghCircles() 2018-04-07 13:00:17 +00:00
Maksim Shabunin
b88609a921 Reduced direct TBB dependencies 2018-04-06 14:21:15 +03:00
Alexander Alekhin
7f63b31ca8 avoid calling of setNumThreads() to respect user settings 2018-03-29 13:04:26 +03:00
Alexander Alekhin
8a0cc5009e build: eliminate MSVC warning 2018-03-28 18:43:28 +03:00
Alexander Alekhin
5d36ee2fe7 imgproc: apply CV_OVERRIDE/CV_FINAL 2018-03-28 17:57:59 +03:00
Alexander Alekhin
7f9253ea0a samples: avoid using of legacy C-like API
- CV_RGB() macro is moved into opencv2/imgproc.hpp from imgproc_c.h
- samples/cpp/filestorage_base64.cpp is dropped
2018-03-26 13:42:35 +03:00
Tomoaki Teshima
06babf90a5 let the test OCL_ImgprocWarp/Resize.Mat pass on ARM/Aarch64
* disable carotenete when calling resize on ARM/Aarch64
  * loosen eps on Aarch64
2018-03-22 21:35:34 +09:00
Alexander Alekhin
b390e86b12 Merge pull request #11124 from terfendail:minenctriangle_fix 2018-03-22 10:23:10 +00:00
Vitaly Tuzov
91c35a7d01 Updated handling of collinear edges while searching for intersection. 2018-03-21 19:15:34 +03:00
yuki takehara
41f8e788b2 Merge pull request #11083 from take1014:lsd_#9363
* Fix #9363

* Renamed the structure and added a new function to the LineSegmentDetectorImpl class as a static member

* Added a new function to the LineSegmentDetectorImpl class as a static member
2018-03-16 19:31:55 +03:00
Rostislav Vasilikhin
64916d3d83 Merge pull request #10869 from savuor:color_cpp_split
color.cpp split (#10869)

* initial split is done

* files renamed (these names are excluded during compilation)

* IPP code moved to corresponding files

* splineBuild, splineInterpolate -> color_lab.cpp

* Lab, Luv: little refactored

* it compiles (didn't check work); Lab OCL code moved to color_lab.cpp

* cvtcolor.cl: Lab/Luv part moved to color_lab.cl

* cvtcolor.cl: color_rgb.cl extracted

* cvtcolor.cl: color_yuv.cl separated

* cvtcolor.cl: color_hsv.cl extracted

* cvtcolor.cl: extracted to color_lab.cl and color_rgb.cl

* helper functions moved to hpp file

* Lab, Luv: moved to color_lab.cpp

* CPU XYZ: to color_lab.cpp

* OCL XYZ: to color_lab.cpp

* warning fixed

* CvtHelper added

* CPU YUV: to color_yuv.cpp, helpers to color.hpp

* CPU HLS/HSV: to color_hsv.cpp

* CPU BGR2BGR: to color_rgb.cpp

* CPU RGB: to color_rgb.cpp

* extra arg removed

* CPU YUV: to color_yuv.cpp

* color code decoded

* OclHelper added, some funcs rewritten

* color_lab.cpp: refactored to use OclHelper

* OCL RGB: to color_rgb.cpp

* OCL HLS/HSV: to color_hsv.cpp

* OCL YUV: to color_yuv.cpp

* OCL YUV planes: to color_yuv.cpp

* OCL: color code reduced

* licence to demosaicing.cpp

* IPP func tables to color_rgb.cpp

* code cleanup

* HAVE_OPENCL ifdefs added

* helpers made more common

* fixed two plane YUV with separate mats

* fixed warning in gcc7.2.0

* precomp header fixed

* color space classification functions fixed

* helpers fixed

* rename: isSRGB -> is_sRGB
2018-03-15 14:10:40 +03:00
Tomoaki Teshima
640d77be25 let the performance tests of WarpPerspective pass
* avoid misuse of vzeroupper on Visual Studio 2013 Update 5
  * add ifdef to avoid unattended optimization
2018-03-07 18:55:27 +09:00
Tomoaki Teshima
9079d9ce17 let the test OCL_Filter/Bilateral pass
* avoid aggressive optimization on Visual Studio 2012 Update 5
  * add code branch to avoid unattended optimization (keep the old code)
2018-03-06 19:48:04 +09:00
Tomoaki Teshima
8fd1bbde76 fix test error on Tinker Board (OpenCL on Arm platform)
* loosen some test threshold mainly for integer types
  * use relative error for floating points result
  * avoid division by zero by following the comment
  * fix the indentation
2018-02-26 22:55:06 +09:00
Florian Echtler
6a8f57e5d7 Merge pull request #10081 from floe:java-camera2-view
* add (untested) JavaCamera2View class

* initial fixes

* minor cleanup

* exclude JavaCamera2View from build for older SDK version

* fix method name typo

* add asserts + sanity checks

* fix preview format checks

* fix the memory leak

* export cvtTwoPlaneYUVtoBGR for Java usage

* add handling for two-plane YUV frames (C wrapper still missing)

* add two-plane cvtColor helper function

* fix warnings

* actually use the new cvtColorTwoPlane helper func

* fix wrong output matrix size

* fix wrong conversion type

* simplify method signature, add error condition

* minor fixes to Mat types

* remove leftover semaphore from camera api 1

* android: JavaCamera2View minor refactoring

- re-apply Java code style
- imports cleanup
- dump exceptions information

* android: JavaCamera2View: pause/resume fixes

* android: JavaCamera2View: fix mScale
2018-02-17 15:01:24 +03:00
Alexander Alekhin
c020a7bb67 build: portable integer types 2018-02-15 23:43:02 +03:00
luz.paz
d05714995c Misc. modules/ cont. pt2
Found via `codespell`
2018-02-13 11:28:11 -05:00
Alexander Alekhin
579781e35e Merge pull request #10822 from alalek:ocl_fix_imgproc_amd 2018-02-12 13:48:06 +00:00
Alexander Alekhin
fad3a6bf15 ocl: disable Laplacian5 and sepFilter2D_SinglePass kernels for AMD OpenCL 2018-02-12 14:06:57 +03:00
take1014
03407a9da0 Merge pull request #10646 from take1014:master
* Add a new interface for hough transform

* Fixed warning code

* Fix HoughLinesUsingSetOfPoints based on HoughLinesStandard

* Delete memset

* Rename HoughLinesUsingSetOfPoints and add common function

* Fix test error

* Change static function name

* Change using CV_Assert instead of if-block and add integer test case

* I solve the conflict and delete 'std :: tr1' and changed it to use 'tuple'

* I deleted std::tr1::get and changed int to use 'get'

* Fixed sample code

* revert test_main.cpp

* Delete sample code in comment and add snippets

* Change file name

* Delete static function

* Fixed build error
2018-02-08 22:54:43 +03:00
Alexander Alekhin
44d7435a48 build: eliminate calls of removed functionality from C++17
Most part is deprecated since C++11
2018-02-07 12:00:33 +03:00
Alexander Alekhin
4a297a2443 ts: refactor OpenCV tests
- removed tr1 usage (dropped in C++17)
- moved includes of vector/map/iostream/limits into ts.hpp
- require opencv_test + anonymous namespace (added compile check)
- fixed norm() usage (must be from cvtest::norm for checks) and other conflict functions
- added missing license headers
2018-02-03 19:39:47 +00:00
Rostislav Vasilikhin
1055f9d208 Merge pull request #10757 from savuor:test_hist_renew
* old types removed

* QueryHist tests: new types

* ThreshHist tests: new types

* CalcHist tests: new types

* CalcBackProject tests: new types

* CalcBackProjectPatch tests: new types

* const ref added
2018-02-02 21:35:44 +03:00
Alexander Alekhin
82f889d9b8 Merge pull request #10765 from BelBES:sb/findContours_fix 2018-02-02 16:03:15 +00:00
Harshal Nishar
384fa95680 Fix in Canny when Sobel apertureSize is 7 (#10743)
* Fixing a bug in Canny implemetation when Sobel aperture size is 7.

* Fixing the bug in Canny accross variants and in test_canny.cpp

* Replacing a tab with white space
2018-02-02 17:00:11 +03:00
sergeybe
2266a8c85f fix FindContours default offset for CV_LINK_RUNS method 2018-02-02 16:46:05 +03:00
Aditya Rohan
ccea0a831a Merge pull request #10732 from Riyuzakii:10598
* Introduces error throw for line drawn with THICKNESS=0
2018-02-01 15:21:00 +03:00
LaurentBerger
2ebf4e084a solve issue #10687 2018-01-26 17:01:02 +01:00
Vitaly Tuzov
12ea8477a3 bitexact gaussianblur implementation (#10345)
* Bit-exact implementation of GaussianBlur smoothing

* Added universal intrinsics based implementation for bit-exact CV_8U GaussianBlur smoothing.

* Added parallel_for to evaluation of bit-exact GaussianBlur

* Added custom implementations for 3x3 and 5x5 bit-exact GaussianBlur
2018-01-22 13:26:32 +03:00
Alexander Alekhin
f056e713c3 Merge pull request #10512 from sturkmen72:update_documentation 2018-01-18 04:44:59 +00:00
Woody Chow
20b3261204 Propagate calculated Gaussian kernel size(ref). Otherwise, ipp_GaussianBlur will fail if user doesn't specify a kernel size. (#10579) 2018-01-16 17:15:23 +03:00
Maksim Shabunin
8b87c4b96a Fixed several warnings produced by clang 6 and static analyzers 2018-01-16 15:26:28 +03:00
Vadim Pisarevsky
59915a3fc9 Merge pull request #10575 from ioxp:getFontScale 2018-01-16 10:51:04 +00:00
woody.chow
f5d9a2a9c1 Parallelize initUndistortRectifyMap 2018-01-15 09:20:35 +09:00
Suleyman TURKMEN
dcd4f8f5db Update documentation 2018-01-12 22:21:14 +03:00
Philipp Hasper
6032d86e23 Added getFontScaleFromHeight() 2018-01-11 14:00:27 +01:00
Alexander Alekhin
d0b2e60edc Merge pull request #10514 from alalek:build_warnings 2018-01-05 20:54:01 +00:00
Alexander Alekhin
8acd05f12a Merge pull request #10421 from cezheng:patch-1 2018-01-05 09:24:33 +00:00
Alexander Alekhin
116c8d0ddf build: eliminate warnings
warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
2018-01-05 04:30:08 +00:00
victor-ludorum
ad23c10600
Updating rotcalipers.cpp to resolve issue #10096
Updating the documentation of the rotcalipers.cpp to resolve issue #10096
2017-12-30 10:21:46 +05:30
Tom Becker
592f8d8c1b Merge pull request #10232 from TomBecker-BD:hough-many-circles
Hough many circles (#10232)

* Add Hui's optimization. Merge with latest changes in OpenCV.

* Use conditional compilation instead of a runtime flag.

* Whitespace.

* Create the sequence for the nonzero edge pixels only if using that approach.

* Improve performance for finding very large numbers of circles

* Return the circles with the larger accumulator values first, as per API documentation.
Use a separate step to check distance between circles. Allows circles to be sorted by strength first. Avoids locking in EstimateRadius which was slowing it down.
Return centers only if maxRadius == 0 as per API documentation.

* Sort the circles so results are deterministic. Otherwise the order of circles with the same strength depends on parallel processing completion order.

* Add test for HoughCircles.

* Add beads test.

* Wrap the non-zero points structure in a common interface so the code can use either a vector or a matrix.

* Remove the special case for skipping the radius search if maxRadius==0.

* Add performance tests.

* Use NULL instead of nullptr.
OpenCV should compile with C++98 compiler.

* Put test suite name first.
Use different test suite names for each test to avoid an error from the test runner.

* Address build bot errors and warnings.

* Skip radius search if maxRadius < 0.

* Dynamically switch to NZPointList when it will be faster than NZPointSet.

* Fix compile error: missing 'typename' prior to dependent type name.

* Fix compile error: missing 'typename' prior to dependent type name.
This time fix it the non C++ 11 way.

* Fix compile error: no type named 'const_reference' in 'class cv::NZPointList'

* Disable ManySmallCircles tests. Failing on Mac.

* Change beads image to JPEG for smaller file size.
Try enabling the ManySmallCircles tests again.

* Remove ManySmallCircles tests. They are failing on the Mac build.

* Fix expectations to check all circles.

* Changing case on a case-insensitive file system
Step 1: remove the old file names

* Changing case on a case-insensitive file system
Step 2: add them back with the new names

* Fix cmpAccum function to be strictly weak ordered.

* Add tests for many small circles.

* imgproc(perf): fix HoughCircles tests

* imgproc(houghCircles): refactor code

- simplify NZPointList
- drop broken (de-synchronization of 'current'/'mi' fields) NZPointSet iterator
- NZPointSet iterator is replaced to direct area scan
- use SIMD intrinsics
- avoid std exceptions (build for embedded systems)
2017-12-28 17:23:11 +03:00
Vadim Pisarevsky
69a6765bf7 Merge pull request #10387 from terfendail:resize23_perftest 2017-12-22 13:26:05 +00:00
Vadim Pisarevsky
3f68d6d8a7 Merge pull request #10392 from terfendail:bitexact_fallback 2017-12-22 13:23:55 +00:00
Alexander Alekhin
83b8cd0152 Merge pull request #10375 from tomoaki0705:buildWarningMSVC 2017-12-22 13:17:12 +00:00
Vitaly Tuzov
5fdb42a7c9 Added fallback to generic linear resize in case bit-exact resize of provided matrix isn't supported 2017-12-22 14:29:50 +03:00
Ce Zheng
602b08d9c7
Update resize inline comments
Reading through the implementation, I feel this line of comment is not consistent with the actually code, so this is for correcting it.
2017-12-22 16:03:12 +08:00
Vitaly Tuzov
019162486c Disabled universal intrinsic based implementation for bit-exact resize of 3-channel images 2017-12-22 10:08:30 +03:00
Tomoaki Teshima
fe7b3f1228 clean up the code
* disable the warning in CMake, not int the code using pragma
2017-12-22 08:42:21 +09:00
Vadim Pisarevsky
a8a51db42b Merge pull request #10316 from terfendail:bitexact_c234 2017-12-21 18:56:54 +00:00
Vitaly Tuzov
b6fe4cc807 Added performance tests for linear resize of 2 and 3-channel images 2017-12-20 18:11:21 +03:00