Commit Graph
70 Commits
Author SHA1 Message Date
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
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
elenagvo b0e9d76ced HAL for canny 2017-12-19 11:03:10 +03:00
Alexander Alekhin baff521b63 imgproc(Canny): eliminate unnecessary operations
drop manual loop unrolling:
- don't block compiler optimizations
- no effect on i5
2017-11-15 19:29:59 +00:00
Pavel Vlasov a57718e1ac ICV2017u3 package update;
- Optimizations set change. Now IPP integrations will provide code for SSE42, AVX2 and AVX512 (SKX) CPUs only. For HW below SSE42 IPP code is disabled.
- Performance regressions fixes for IPP code paths;
- cv::boxFilter integration improvement;
- cv::filter2D integration improvement;
2017-08-23 14:24:43 +03:00
Alexander Alekhin cdf2a59afa canny: disallow broken inplace arguments 2017-06-30 19:32:16 +03:00
Alexander Alekhin 006966e629 trace: initial support for code trace 2017-06-26 17:07:13 +03: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
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
Vitaly Tuzov bf5b7843e8 Extended set of OpenVX HAL calls disabled for small images 2017-04-06 18:17:32 +03:00
Vitaly Tuzov 9a4b5a4545 OpenVX calls updated to use single common OpenVX context per thread 2017-02-21 16:08:23 +03:00
Rostislav Vasilikhin 8b9422a052 OpenVX wrappers rewritten with CV_OVX_RUN, VX_DbgThrow 2016-12-14 17:49:41 +03:00
apavlenko 4246d3667f disabling again 2016-12-09 14:53:06 +03: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 541d5b02d9 disabling due to accuracy issues 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
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 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
Tomoaki Teshima 841ccccada use universal intrinsic in canny
* add v_abs for universal intrinsic
  * add test of v_abs in test_intrin
  * fix compile error on gcc
  * fix bool OR operation
2016-10-03 13:23:43 +09:00
Vitaly Tuzov 48f132f35f Fix Sobel evaluation for image ROI without isolated border. 2016-09-16 16:08:37 +03:00
mschoeneck 9e61a28b2e Improve canny (#7227)
* Improve Canny by using _mm_movemask_epi8 to find next pixel magnitude greater than lower threshold. Added parallelized finalPass to Canny with variable gradients. Little changes in finalPass.

* Some things fixed
2016-09-05 13:51:36 +03:00
Pavel Vlasov 30a6cee2fe Instrumentation for OpenCV API regions and IPP functions; 2016-08-19 18:10:03 +03:00
mschoeneck 5f30a0a076 Merge pull request #6958 from mschoeneck:Common-Canny-parallelization
* Common Canny parallelization added. TBB and single thread code removed. Final pass vectorized with SSE2 intrinsics.

* wrong #ifdef replaced with #if

* Merged to actual Canny version

* Merged common parallelized Canny with actual Canny implementation

* Remove 'Mutex *mutex' and pass 'Mutex mutex' from outside to parallelCanny

* Replaced extern Mutex with intern mutable Mutex.
2016-08-05 17:20:56 +03:00
Alexander Alekhin 575de89ee2 imgproc: Canny: enable IPP & OpenCL optimization code path 2016-07-19 17:15:36 +03:00
Alexander Alekhin 460b1dc2fa imgproc: Canny with custom gradient 2016-07-19 17:15:36 +03:00
k-shinotsuka 43d5988df6 improve to calculate norm 2016-06-05 16:55:02 +09:00
themightyoarfish 68d97502fe Error message for wrong kernel size was insufficient.
When setting a wrong kernel size, the error message only tells the user that it
must be odd, however the conditions for rejection include values > 7 which must
be communicated. Without that, the message would be incorrect and confusing if
the user is unaware that only values 3, 5, 7 are accepted.
2016-03-28 14:06:55 +02:00
Pavel Vlasov 7375383d26 Canny IPP Sobel getBufferSize wrong func fix; 2015-11-23 14:31:22 +03:00
Maksim Shabunin 6e9d0d9a0c Visual Studio 2015 warning and test fixes 2015-10-20 12:48:37 +03:00
Pavel Vlasov 62854dcc0d Enables support of IPP 9.0.0;
HAVE_IPP_ICV_ONLY will be undefined if OpenCV was linked against ICV packet from IPP9 or greater. ICV9+ packets will be aligned with IPP in OpenCV APIs
This will ease code management between IPP and ICV
2015-09-29 17:27:13 +03:00
Pavel Vlasov 14b006e808 IPP_VERSION_X100 was changed to:
IPP_VERSION_MAJOR * 100 + IPP_VERSION_MINOR*10 + IPP_VERSION_UPDATE
to manage changes between updates more easily.

IPP_DISABLE_BLOCK was added to ease tracking of disabled IPP functions;
2015-09-25 17:50:15 +03:00
Pavel Vlasov 2177c7c5a8 Some IPP functions were encapsulated;
Minor changes to IPP implementations;
2015-09-25 17:30:26 +03:00
Vadim Pisarevsky e4bc592c46 Merge pull request #3583 from oresths:tbb_canny 2015-03-04 10:49:27 +00:00
Vladislav Vinogradov cda6fed41f move tegra namespace out of cv to prevent conflicts 2015-02-27 12:52:11 +03:00
Vladislav Vinogradov 44e41baffe use new functions before all tegra:: calls 2015-02-26 19:34:58 +03:00
Ilya Lavrenov fc0869735d used popcnt 2015-01-12 10:59:30 +03:00
orestis c7b2e48efe Canny TBB Optimization 2015-01-07 19:54:20 +02:00
Yan Wang 184b6e314c Fix canny segment fault (Bug #3978)
Avoid stack overflow based on std::vector cause
std::vector::resize() segmentation fault.
2014-11-12 17:48:05 +08:00
Alexander Karsakov 0ec0aeb7d0 Minor optimization for ocl_canny 2014-11-06 13:07:33 +03:00
Pavel Vlasov 45958eaabc Implementation detector and selector for IPP and OpenCL;
IPP can be switched on and off on runtime;

Optional implementation collector was added (switched off by default in CMake). Gathers data of implementation used in functions and report this info through performance TS;

TS modifications for implementations control;
2014-10-15 14:24:41 +04:00
Ilya Lavrenov c0b702a994 cv::resize area 2x 2014-09-26 09:41:45 +00:00
Ilya Lavrenov 12001a42f9 corners 2014-09-26 09:41:45 +00:00
Ilya Lavrenov d30ce2b9ac canny 2014-09-26 09:41:45 +00:00
Alexander Karsakov 07d57db91c Fixed calculation of l_stack_size 2014-09-03 17:40:17 +04:00
U-KruchininD-ПК\KruchininD 6ed168d3af New optimization for canny
new hysteresis

delete whitespaces

fix problem with mad24

Dynamic work group size

dynamic work group size

Fix problem with warnings

Fix some problems with border

Another one fix

Delete trailing whitespaces

some changes

fix problem with warning
2014-08-22 11:22:15 +04:00
Adil Ibragimov 8a4a1bb018 Several type of formal refactoring:
1. someMatrix.data -> someMatrix.prt()
2. someMatrix.data + someMatrix.step * lineIndex -> someMatrix.ptr( lineIndex )
3. (SomeType*) someMatrix.data -> someMatrix.ptr<SomeType>()
4. someMatrix.data -> !someMatrix.empty() ( or !someMatrix.data -> someMatrix.empty() ) in logical expressions
2014-08-13 15:21:35 +04:00
Alexander Alekhin 55188fe991 world fix 2014-08-05 20:12:35 +04:00
Ilya Lavrenov d40cb39616 SSE2 optimization of magnitude calculation 2014-07-02 00:05:55 +04:00