Commit Graph

2851 Commits

Author SHA1 Message Date
Vitaly Tuzov
ea882d58c6 Added CV_ALWAYS_INLINE macro 2019-01-11 22:40:35 +03:00
catree
d745af6763 Add Matplotlib Perceptually Uniform Sequential colormaps (viridis, plasma, inferno, magma, cividis, twilight and twilight shifted). 2019-01-06 22:48:06 +01:00
Vitaly Tuzov
7beb24553a Speedup filter2d by loop unrolling
Added filter2d tests for 16S
2018-12-25 14:40:48 +03:00
Alexander Alekhin
c0e11bb50e imgproc: revert "Speedup filter2d by loop unrolling"
Commit: 124011c321
PR: https://github.com/opencv/opencv/pull/13392

Sobel filter with 16S/16U datatype is broken.
2018-12-22 05:37:29 +00:00
Alexander Alekhin
26c5b846e6 Merge pull request #13392 from terfendail:filter_wintr 2018-12-21 11:00:44 +00:00
Vitaly Tuzov
124011c321 Speedup filter2d by loop unrolling 2018-12-20 21:18:42 +03:00
Vitaly Tuzov
131c09cf76 Fixed medianBlur implementation for hi-resolution images 2018-12-19 18:05:42 +03:00
Vitaly Tuzov
06f32e3b3e Reworked separable filter to use wide universal intrinsics 2018-12-19 17:50:09 +03:00
vishwesh5
3eb2c940de
Fix Scharr and Sobel functions
Resolves #13375
2018-12-17 20:39:22 +05:30
Rostislav Vasilikhin
d99a4af229 Merge pull request #13379 from savuor:color_5x5
RGB to/from Gray rewritten to wide intrinsics (#13379)

* 5x5 to RGB added

* RGB25x5 added

* Gray2RGB added

* Gray2RGB5x5 added

* vx_set moved out of loops

* RGB5x52Gray added

* RGB2Gray written

* warnings fixed (int -> (u)short conversion)

* warning fixed

* warning fixed

* "i < n-vsize+1" to "i <= n-vsize"

* RGBA2mRGBA vectorized

* try to fix ARM builds

* fixed ARM build for RGB2RGB5x5

* mRGBA2RGBA: saturation, vectorization

* fixed CL implementation of mRGBA2RGBA (saturation added)
2018-12-14 17:01:01 +03:00
Vitaly Tuzov
3903174f7c Merge pull request #13334 from terfendail:histogram_wintr
* added performance test for compareHist

* compareHist reworked to use wide universal intrinsics

* Disabled vectorization for CV_COMP_CORREL and CV_COMP_BHATTACHARYYA if f64 is unsupported
2018-12-13 14:20:22 +03:00
Namgoo Lee
83c7dfb6a4 Fix error in LineIterator example code in doc 2018-12-05 11:31:19 +09:00
Alexander Alekhin
2d5ccc7b3e imgproc(resize): update checks (static analyzers) 2018-12-03 13:13:48 +03:00
Alexander Alekhin
4e29e2fc7d imgproc(test): fix resize bitexact test
- use "random" area on input image
- avoid duplicate cases
2018-11-30 16:38:07 +03:00
Alexander Alekhin
5ed7d5a5d9 imgproc: local "CV_Assert(totalSampleCount > 0)" check 2018-11-28 20:16:37 +00:00
Alexander Alekhin
b1064efb44 Merge pull request #13294 from terfendail:contours_wintr 2018-11-27 13:54:23 +00:00
Alexander Alekhin
83c8214b38 eliminate build warnings 2018-11-27 15:24:59 +03:00
Vitaly Tuzov
e991e05b9b Added anonymous namespace to perf_contours 2018-11-27 11:35:40 +03:00
Alexander Alekhin
223893ea5a Merge pull request #13242 from terfendail:contours_wintr 2018-11-26 12:29:31 +00:00
Vitaly Tuzov
e9e8bf4b81 Added performance tests for findContours 2018-11-21 19:57:02 +03:00
Vitaly Tuzov
e1a2c034e8 Updated findContours to use wide universal intrinsics 2018-11-21 19:57:02 +03:00
Vitaly Tuzov
9ad1a84853 Unrolled bilateral filter neighbor processing loop 2018-11-16 13:51:46 +03:00
Vitaly Tuzov
f5b6bea2d4 Raised bilateralFilter processing precision for CV_32F matrices containing NaNs 2018-11-16 12:07:04 +03:00
Alexander Alekhin
1c04a5ec47 Merge pull request #12965 from terfendail:medianBlur_wintr 2018-11-16 00:47:11 +00:00
Alexander Alekhin
42742727d6 imgproc(ocl): fix morph generic filter checks
'ksize' is not updated with 'kernel'
2018-11-14 20:15:01 +03:00
Vitaly Tuzov
2dd98e7cc6 bilateralFilter implementation moved to separate file 2018-11-09 18:26:26 +03:00
Vitaly Tuzov
28fd967148 Updated bilateralFilter implementations to use wide universal intrinsics 2018-11-09 15:27:30 +03:00
tompollok
2da56d5af6 refactoring catching all exceptions as const ref 2018-11-08 19:59:47 +03:00
Alexander Alekhin
b74b05d1b3 Revert CV_TRY/CV_CATCH macros
This reverts commit 7349b8f5ce (partially).
2018-11-08 19:56:52 +03:00
Vitaly Tuzov
e5d7f446d6 Merge pull request #13056 from terfendail:box_wintr
* Updated boxFilter implementations to use wide universal intrinsics

* boxFilter implementation moved to separate file

* Replaced ROUNDUP macro with roundUp() function
2018-11-07 23:59:36 +03:00
Alexander Alekhin
4531f9f2f4 Merge pull request #13023 from terfendail:medianBlur_sep 2018-11-06 20:22:08 +00:00
lqy123000
cceeca3052 Merge pull request #12916 from lqy123000:bugfix_templmatch
* avoid rounding errors

* imgproc: replace condition in matchTemplate
2018-11-06 19:13:48 +03:00
Vitaly Tuzov
877de883b0 medianBlur() implementation moved to separate file 2018-11-02 16:28:23 +03:00
Vitaly Tuzov
0fda551dbc Updated medianBlur implementations to use wide universal intrinsics 2018-11-02 12:26:23 +03:00
Suleyman TURKMEN
4d0ed5c13c Merge pull request #12971 from sturkmen72:upd_imgproc_hpp
* Update imgproc.hpp

* update color conversion codes
2018-10-31 18:08:24 +03:00
Rostislav Vasilikhin
fa91d621fa Merge pull request #12876 from savuor:color_rgb2rgb_wide
* RGB2RGB initially rewritten

* NEON impl removed

* templated version added for ushort, float

* data copying allowed for RGB2RGB

* inplace processing fixed

* fields to local vars

* no zeroupper until it's fixed

* vx_cleanup() added back
2018-10-30 18:36:23 +03:00
maver1
e397434cb6 Merge pull request #12877 from maver1:3.4
* Updated ICV packages and IPP integration

* core(test): minMaxIdx IPP regression test

* core(ipp): workaround minMaxIdx problem

* core(ipp): workaround meanStdDev() CV_32FC3 buffer overrun

* Returned semicolon after CV_INSTRUMENT_REGION_IPP()
2018-10-24 15:02:53 +03:00
Michał Janiszewski
c8e6ce304f Catch exceptions by const-reference
Exceptions caught by value incur needless cost in C++, most of them can
be caught by const-reference, especially as nearly none are actually
used. This could allow compiler generate a slightly more efficient code.
2018-10-16 22:43:54 +02:00
Alexander Alekhin
1cc3f7abbb Merge pull request #12516 from seiko2plus:changeUnvMultiply16 2018-10-15 12:07:40 +00:00
tompollok
0b77600718 change area() emptiness checks to empty() 2018-10-13 21:35:10 +02:00
Alexander Alekhin
0d63c4c28e Merge pull request #12811 from take1014:resize_large_image 2018-10-12 16:59:25 +00:00
take1014
24af70c7e0 resolves 11283 2018-10-12 23:08:25 +09:00
Sayed Adel
9dc1d388af imgproc: Enable VSX on pyrDown & pyrUp 2018-10-11 23:03:57 +00:00
Alexander Alekhin
53785b6ac6 Merge pull request #12784 from terfendail:pyramids_wintr 2018-10-11 19:26:36 +00:00
Alexander Alekhin
2332fb852d Merge pull request #12748 from terfendail:resize_wintr2 2018-10-11 19:26:17 +00:00
Sayed Adel
8965f3ae06 imgproc:simd Enable VSX and wide universal intrinsics for accumulate operations
- improve cpu dispatching calls to allow more SIMD extentions
    (SSE4.1, AVX2, VSX)
  - wide universal intrinsics
  - replace dummy v_expand with v_expand_low
  - replace v_expand + v_mul_wrap with v_mul_expand for product accumulate operations
  - use FMA for accumulate operations
  - add mask and more types to accumulate's performance tests
2018-10-11 04:37:12 +02:00
Sayed Adel
5771fd693d Change behaviour of 16-bit multiply operator
- redefine 16-bit multiply operator to perform saturating multiply
    instead of non-saturating multiply
  - implement 8-bit multiply operator to perform saturating multiply
  - implement v_mul_wrap() for 8-bit, 16-bit non-saturating multiply
  - improve performance of v_mul_hi() for VSX
  - update intrin tests with new changes
  - replace unv 16-bit multiplication operator with v_mul_wrap due behavior changes

  - Several improvements depend on vpisarev review

    * initial forward declarations for universal intrinsics
    * move emulating SSE intrinsics into separate file
    * implement v_mul_expand for 8-bit
    * reimplement saturating multiply using v_mul_expand + v_pack
    * map v_expand, v_load_expand, v_load_expand_q to sse4.1
    * fix overflow avx2::v_pack(uint32)
    * implement two universal intrinsics v_expand_low and v_expand_high
2018-10-11 04:35:39 +02:00
Vitaly Tuzov
cc10e6b344 pyrDown and pyrUp SSE2 implementations replaced with wide universal intrinsics implementations 2018-10-10 21:12:47 +03:00
Apoorv Goel
b8aa0cddab Merge pull request #12777 from UnderscoreAsterisk:document-cvtColorTwoPlane
* Add documentation for cvtColorTwoPlane

* Change brief and add links
2018-10-09 15:49:17 +03:00
Vitaly Tuzov
9d602f2752 Replaced SSE2 area resize implementation with wide universal intrinsic implementation 2018-10-08 16:27:52 +03:00
Vitaly Tuzov
6b84990620 integral() implementation updated to utilize wide universal intrinsics 2018-10-01 17:25:43 +03:00
Alexander Alekhin
70f38b4dfa
Merge pull request #12510 from take1014:doc_hough 2018-09-17 21:39:12 +03:00
Alexander Alekhin
92ec971453 Merge pull request #12526 from terfendail:avx2_resize_fix 2018-09-14 15:57:47 +00:00
Hamdi Sahloul
5d54def264 Add semicolons after CV_INSTRUMENT macros 2018-09-14 06:45:31 +09:00
Vitaly Tuzov
29770e13e8 Fixed bit-exact resize SIMD implementation for AVX2 baseline 2018-09-13 18:20:27 +03:00
Mark Harfouche
095b0d3272 Fix BayerXX2RGBA when blue is on the first line. 2018-09-12 16:06:44 -04:00
take1014
57ae3ac7a2 fix document about HoughLines 2018-09-12 22:18:30 +09:00
Mark Harfouche
53bbed89ae Output RGBA images when bayer_xx2YYYA is called 2018-09-07 16:03:04 -04:00
Hamdi Sahloul
a39e0daacf Utilize CV_UNUSED macro 2018-09-07 20:33:52 +09:00
Alexander Alekhin
bd98ed46bd Merge pull request #12446 from alalek:imgproc_grabcut_numeric_issues 2018-09-06 20:18:45 +00:00
Alexander Alekhin
24e72e151a imgproc: grabcut numeric stability 2018-09-06 17:05:54 +03:00
Alexander Alekhin
8a3c394d6a don't use constructors for C API structures 2018-09-06 14:34:16 +03:00
Alexander Alekhin
ad146e5a6b core: remove constructors from C API structures
POD structures can't have constructors.
2018-09-06 14:34:09 +03:00
Alexander Alekhin
e70526625f imgproc: fix Subdiv2D::getTriangleList() 2018-09-05 16:24:27 +03:00
Alexander Alekhin
7f7f30a08b Merge pull request #12406 from alalek:backport_12357_12391 2018-09-04 16:09:44 +00:00
Alexander Alekhin
fda99c1c6c Merge pull request #12394 from alalek:imgproc_GaussianBlur_allow_HAL_8U 2018-09-04 15:16:08 +00:00
Alexander Alekhin
acce95f446 backport fixes for static analyzer warnings
Commits:
- 09837928d9
- 10fb88d027

Excluded changes with std::atomic (C++98 requirement)
2018-09-04 16:49:42 +03:00
Vitaly Tuzov
f9a5c4d181 Fixed bit-exact resize wide intrinsics implementation for 16U 2018-09-03 20:37:25 +03:00
Alexander Alekhin
1e362ff5c3 imgproc(GaussianBlur): restore processing order 2018-09-03 18:39:42 +03:00
Vadim Pisarevsky
fc71316690 Merge pull request #12371 from alalek:issue_12366 2018-09-03 14:30:16 +00:00
yuki takehara
cb7ee27cd9 Fix bug in distanceTransform (#12278)
* fix 12218

* Update test_distancetransform.cpp

marked the test as "BIGDATA_TEST" in order to skip it on low-mem platforms

* modify test

* use a smaller image in the test

* fix test code
2018-09-03 17:18:10 +03:00
Alexander Alekhin
0f9f2696be imgproc: small code refactoring (findContours -> l_cinfo) 2018-09-01 12:58:40 +00:00
Alexander Alekhin
65a0587ce8 imgproc(segmentation): don't increase mask NULL pointer
Avoid manual address arithmetic
2018-09-01 12:38:57 +00:00
Vitaly Tuzov
0f2b535fcc Bit-exact GaussianBlur reworked to use wide intrinsics (#12073)
* Bit-exact GaussianBlur reworked to use wide intrinsics

* Added v_mul_hi universal intrinsic

* Removed custom SSE2 branch from bit-exact GaussianBlur

* Removed loop unrolling for gaussianBlur horizontal smoothing
2018-08-31 17:04:59 +03:00
Vitaly Tuzov
e345cb03d5 Bit-exact resize reworked to use wide intrinsics (#12038)
* Bit-exact resize reworked to use wide intrinsics

* Reworked bit-exact resize row data loading

* Added bit-exact resize row data loaders for SIMD256 and SIMD512

* Fixed type punned pointer dereferencing warning

* Reworked loading of source data for SIMD256 and SIMD512 bit-exact resize
2018-08-31 16:54:05 +03:00
Vadim Pisarevsky
bab4f4f5d8 Merge pull request #12348 from take1014:subdiv_getTriangleList_5788 2018-08-31 13:01:16 +00:00
take1014
e1ee744e15 resolve #5788 2018-08-31 00:59:00 +09:00
Vadim Pisarevsky
258a769567 Merge pull request #12327 from take1014:distanceTransform_type 2018-08-30 13:12:08 +00:00
take1014
1ae477a46d fix typo 2018-08-28 22:14:47 +09:00
Alexander Alekhin
e593d5bbc5 Merge pull request #12255 from csukuangfj:patch_5 2018-08-20 13:47:41 +00:00
Kuang Fangjun
ab8ba047a5 fix a typo. 2018-08-20 15:52:18 +08:00
Kuang Fangjun
cecc19381f fix an error in the formula for cv::cornerSubPix 2018-08-20 15:49:35 +08:00
Alexander Alekhin
31fef14d76 Merge pull request #12136 from sturkmen72:update_documentation 2018-08-17 14:02:20 +00:00
Suleyman TURKMEN
c61bc3a0cb Update documentation and samples 2018-08-17 14:21:29 +03:00
Alexander Alekhin
98c5ce9347 imgproc(test): refactor test_intersection.cpp
don't use legacy test API
2018-08-16 15:27:24 +03:00
Alexander Alekhin
f89defad5d imgproc: fix rotatedRectangleIntersection() 2018-08-16 15:27:24 +03:00
Bahram Dahi
96f92c6705 imgproc(tests): intersetion calculation of RotatedRect 2018-08-16 15:00:01 +03:00
Alexander Alekhin
f16f818f5f Merge pull request #12184 from alalek:issue_12163 2018-08-08 20:50:54 +00:00
Alexander Alekhin
a0cff0be94 imgproc(cvtColor): slightly improve error messages
Do not try to process empty inputs.
2018-08-08 17:16:42 +03:00
Alexander Alekhin
b00758babe imgproc(cvtColor): temporary disable IPP for 8U GRAY2BGR mode
Details 12176
2018-08-08 13:58:45 +03:00
tompollok
061149cbbd
imgproc: update cornerSubPix documentation 2018-08-02 18:00:43 +02:00
Kuang Fangjun
83039c8752 fix a typo. 2018-07-30 18:18:18 +08:00
Maksim Shabunin
cbb1e867e5 More issues found by static analysis 2018-07-24 16:04:42 +03:00
Maksim Shabunin
e0603bb45f Fixed several issues found by static analysis tools 2018-07-23 17:22:47 +03:00
Alexander Alekhin
f3ee07ca11 Merge pull request #11986 from alalek:build_eliminate_gcc8_warnings 2018-07-17 15:41:36 +00:00
Maksim Shabunin
c473718bc2 Check for empty Mat in compare, operator= and RNG::fill, fixed related tests 2018-07-17 17:50:50 +03:00
Maksim Shabunin
1da46fe6fb Fixed issues found by static analysis (mostly DBZ) 2018-07-17 16:14:54 +03:00
Alexander Alekhin
d5951bc033 build: eliminate GCC8 warnings 2018-07-16 17:24:12 +03:00
Alexander Alekhin
0155851929 imgproc(getPerspectiveTransform): add configuration parameter 2018-07-13 15:31:33 +03:00
Alexander Alekhin
71c6cb9c22 imgproc(getPerspectiveTransform): solve(DECOMP_SVD -> LU) 2018-07-13 15:31:33 +03:00