Commit Graph

459 Commits

Author SHA1 Message Date
Rostislav Vasilikhin
cc547e8260 Bit-exact version of Luv2RGB_b (#9470)
* lab_tetra squashed

* initial version is almost written

* unfinished work

* compilation fixed, to be debugged

* Lab test removed

* more fixes

* Luv2RGBinteger: channels order fixed

* Lab structs removed

* good trilinear interpolation added

* several fixes

* removed Luv2RGB interpolations, XYZ tables; 8-cell LUT added

* no_interpolate made 8-cell

* interpolations rewritten to 8-cell, minor fixes

* packed interpolation added for RGB2Luv

* tetra implemented

* removing unnecessary code

* LUT building merged

* changes ported to color.cpp

* minor fixes; try to suppress warnings

* fixed v range of Luv

* fixed incorrect src channel number

* minor fixes

* preliminary version of Luv2RGBinteger is done

* Luv2RGB_b is in progress

* XYZ color constants converted to softfloat

* Luv test: precision fixed

* Luv bit-exactness test added

* warnings fixed

* compilation fixed, error message fixed

* Luv check is limited to [0-2,0-2,0-2] by XYZ

* L->Y generation moved to LUT

* LUTs added for up and vp of Luv2RGB_b

* still works

* fixed-point is done, works at maxerr 2

* vectorized code is done, 2x slower than original

* perf improved by 10%

* extra comments removed

* code moved to color.cpp

* test_lab.cpp updated

* minor refactoring

* test added for Luv2RGB

* OCL Luv2RGB_b: XYZ are limited to [0, 2]; docs updated

* Luv2RGB_b rewritten to universal intrinsics

* test_lab.cpp moved to luv_tetra branch
2017-09-21 14:20:45 +03:00
Dmitry Kurtaev
fa109b94d9 Update 16UC thresholding 2017-09-18 18:34:45 +03:00
Rostislav Vasilikhin
4435ec5f26 Bit-exact version of RGB2Luv_b (#9226)
* Imgproc_ColorLab_Full.accuracy test fixed

* Lab and Luv tests: rewritten, constants explained

* CV_ColorCvtBaseTest: added methods for 8u implementations

* Lab2RGB_b: bit-exactness enabled for all modes; non-vectorized code fixed to comply with vectorized

* srgb support added

* XYZ constants made softdouble

* bit-exact tests written for Lab

* ColorLab_full test fixed

* reverted: no 8u convertors for CV_ColorCvtBaseTest

* added checksum-based test for Lab bit-exactness

* extra declarations removed

* Lab test fix: stop at first mismatch

* test info output improved

* error message fixed

* lab_tetra squashed

* initial version is almost written

* unfinished work

* compilation fixed, to be debugged

* Lab test removed

* more fixes

* Luv2RGBinteger: channels order fixed

* Lab structs removed

* good trilinear interpolation added

* several fixes

* removed Luv2RGB interpolations, XYZ tables; 8-cell LUT added

* no_interpolate made 8-cell

* interpolations rewritten to 8-cell, minor fixes

* packed interpolation added for RGB2Luv

* tetra implemented

* removing unnecessary code

* LUT building merged

* changes ported to color.cpp

* minor fixes; try to suppress warnings

* fixed v range of Luv

* fixed incorrect src channel number

* minor fixes

* preliminary version of Luv2RGBinteger is done

* Luv2RGB_b is in progress

* XYZ color constants converted to softfloat

* Luv test: precision fixed

* Luv bit-exactness test added

* warnings fixed

* compilation fixed, error message fixed

* test_lab.cpp removed
2017-09-14 14:51:27 +03:00
Rostislav Vasilikhin
18ca3d1e62 error message fixed 2017-09-12 20:05:58 +03:00
Rostislav Vasilikhin
2457bfc1e3 test info output improved 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
f6a165d10f Lab test fix: stop at first mismatch 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
92093a6e6c extra declarations removed 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
f1e8aa70a0 added checksum-based test for Lab bit-exactness 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
d25344c257 reverted: no 8u convertors for CV_ColorCvtBaseTest 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
62ee92e3e2 ColorLab_full test fixed 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
375ec5ed7e bit-exact tests written for Lab 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
758f914249 XYZ constants made softdouble 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
121fa04906 srgb support added 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
f5dff87242 CV_ColorCvtBaseTest: added methods for 8u implementations 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
f0ef7bd149 Lab and Luv tests: rewritten, constants explained 2017-09-12 17:16:30 +03:00
Rostislav Vasilikhin
0e6c335077 Imgproc_ColorLab_Full.accuracy test fixed 2017-09-12 17:16:30 +03:00
Alexander Alekhin
5a54acef4e Merge pull request #9130 from alalek:android_define 2017-07-14 17:17:24 +00:00
Alexander Alekhin
a4a47b538c build: detect Android via '__ANDROID__' macro
https://sourceforge.net/p/predef/wiki/OperatingSystems
2017-07-10 12:43:59 +03:00
Vladislav Sovrasov
42936d3227 imgproc: fix MORPH_HITMISS operation when kernel has no negative values 2017-07-04 11:17:44 +03:00
Vitaly Tuzov
3d7fd4132b Fixed clipLine evaluation for very long lines 2017-06-26 16:00:29 +03:00
Vadim Pisarevsky
057c10baac Merge pull request #8377 from ottogin:interpMultichannelImg 2017-05-24 12:38:41 +00:00
Vladislav Sovrasov
bfc4eb31cb imgproc: fix BGRA2BGRA conversion 2017-05-15 10:23:20 +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
Pavel Vlasov
35c7216846 IPP for OpenCV 2017u2 initial enabling patch; 2017-04-20 20:26:30 +03:00
Artem Lukoyanov
84a0a91d16 Merge branch 'master' of https://github.com/opencv/opencv into interpMultichannelImg
Added assertios to remap and warpAffine functions

As @mshabunin said, remap and warpAffine functions do not support more than 4 channels in
Bicubic and Lanczos4 interpolation modes. Assertions were added. Appropriate test was chenged.
resolves #8272
2017-03-24 23:58:51 +03:00
vartenkov
3fbe1f8d64 Fix multichannel warping with BORDER_CONSTANT
Warping a matrix with more than 4 channels using BORDER_CONSTANT and
INTER_NEAREST, INTER_CUBIC or INTER_LANCZOS4 interpolation led to
undefined behaviour. This commit changes the behavior of these methods
to be similar to that of INTER_LINEAR. Changed the scope of some of the
variables to more local. Modified some tests to be able to detect the
error described.
2017-03-20 15:21:49 +03:00
Maksim Shabunin
7d5fd6a800 Merge pull request #7812 from alalek:fix_putText 2016-12-15 13:33:56 +00:00
apavlenko
3aedc134c2 replacing white noise with fruits picture 2016-12-12 17:55:11 +03:00
apavlenko
a99118c4c7 moving CannyVX test from ocl to cpp file 2016-12-09 15:07:53 +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
Alexander Alekhin
7e0f1ec00a test: putText regression garbage test 2016-12-08 22:14:31 +03:00
Alexander Alekhin
bcbe2f123f test: move more drawing tests 2016-12-08 22:14:30 +03:00
Alexander Alekhin
781ab3d481 test: minor refactoring in test_drawing 2016-12-08 22:14:29 +03:00
Alexander Alekhin
ee265962b2 test: move test_drawing into imgproc module 2016-12-07 22:04:25 +03:00
Li Peng
396921dd23 5x5 gaussian blur optimization
Add new 5x5 gaussian blur kernel for CV_8UC1 format,
it is 50% ~ 70% faster than current ocl kernel in the perf test.

Signed-off-by: Li Peng <peng.li@intel.com>
2016-12-06 09:42:37 +08:00
Li Peng
b69cdb2434 Image pyramids upsampling optimization
Add new ocl kernel for image pyramids upsampling,
It is 35% faster than current OCL kernel in perf test.

Signed-off-by: Li Peng <peng.li@intel.com>
2016-12-02 13:54:58 +08:00
Li Peng
2ca5a7e862 more optimization for warpAffine and warpPerspective
Add new OpenCL kernels for bicubic interploation, it is 20% faster
than current warp image kernel with bicubic interploation.

Signed-off-by: Li Peng <peng.li@intel.com>
2016-11-30 15:43:41 +08:00
Li Peng
b72d196753 optimization for warpAffine and warpPerspective
Add new ocl kernels for warpAffine and warpPerspective,
The average performance improvemnt is about 30%. The new
ocl kernels require CV_8UC1 format and support nearest
neighbor and bilinear interpolation.

Signed-off-by: Li Peng <peng.li@intel.com>
2016-11-29 14:55:58 +08: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
Alexander Alekhin
c93fb14dd2 Merge pull request #7653 from pengli:deriv 2016-11-14 13:40:04 +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
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
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
Alexander Alekhin
4c66772783 Merge pull request #7516 from sovrasov:find_contours_fix 2016-10-30 08:33:12 +00:00
Vadim Pisarevsky
2b7866f21b Merge pull request #7503 from pengli:box_filter_v2 2016-10-29 21:20:06 +00: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
Vladislav Sovrasov
34df4ae02a Add a regression test, fix documentation 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