Commit Graph

77 Commits

Author SHA1 Message Date
Yuantao Feng
97681bdfce
Merge pull request #25984 from fengyuentau:imgproc/warpaffine_opt
imgproc: add optimized warpAffine kernels for 8U/16U/32F + C1/C3/C4 inputs #25984

Merge wtih https://github.com/opencv/opencv_extra/pull/1198.
Merge with https://github.com/opencv/opencv_contrib/pull/3787.


### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
2024-10-03 14:01:36 +03:00
definitelyuncertain
a1028efdcf
Merge pull request #24333 from definitelyuncertain:CvtRGB2YUV422
Implement color conversion from RGB to YUV422 family #24333

Related PR for extra: https://github.com/opencv/opencv_extra/pull/1104

Hi,

This patch provides CPU and OpenCL implementations of color conversions from RGB/BGR to YUV422 family (such as UYVY and YUY2).

These features would come in useful for enabling standard RGB images to be supplied as input to algorithms or networks that make use of images in YUV422 format directly (for example, on resource constrained devices working with camera images captured in YUV422).

The code, tests and perf tests are all written following the existing pattern. There is also an example `bin/example_cpp_cvtColor_RGB2YUV422` that loads an image from disk, converts it from BGR to UYVY and then back to BGR, and displays the result as a visual check that the conversion works.

The OpenCL performance for the forward conversion implemented here is the same as the existing backward conversion on my hardware. The CPU implementation, unfortunately, isn't very optimized as I am not yet familiar with the SIMD code.

Please let me know if I need to fix something or can make other modifications.

Thanks!

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
- [x] The feature is well documented and sample code can be built with the project CMake
2023-10-12 10:18:24 +03:00
Maksim Shabunin
c1e5c16ff3 Backport C-API cleanup (imgproc) from 5.x 2023-01-16 23:29:50 +03:00
Alexander Alekhin
68d15fc62e Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2021-04-08 11:23:24 +00:00
Aaron Greig
f3f46096d6 Relax accuracy requirements in the OpenCL sqrt perf arithmetic test.
Also bring perf_imgproc CornerMinEigenVal accuracy requirements in line with
the test_imgproc accuracy requirements on that test and fix indentation on
the latter.

Partially addresses issue #9821
2021-04-06 17:32:48 +01:00
Amir Tulegenov
47426a8ae5
Merge pull request #19392 from amirtu:OCV-165_finalize_goodFeaturesToTrack_returns_also_corner_value_PR
* goodFeaturesToTrack returns also corner value

(cherry picked from commit 4a8f06755c)

* Added response to GFTT Detector keypoints

(cherry picked from commit b88fb40c6e)

* Moved corner values to another optional variable to preserve backward compatibility

(cherry picked from commit 6137383d32)

* Removed corners valus from perf tests and better unit tests for corners values

(cherry picked from commit f3d0ef21a7)

* Fixed detector gftt call

(cherry picked from commit be2975553b)

* Restored test_cornerEigenValsVecs

(cherry picked from commit ea3e11811f)

* scaling fixed;
mineigen calculation rolled back;
gftt function overload added (with quality parameter);
perf tests were added for the new api function;
external bindings were added for the function (with different alias);
fixed issues with composition of the output array of the new function (e.g. as requested in comments) ;
added sanity checks in the perf tests;
removed C API changes.

* minor change to GFTTDetector::detect

* substitute ts->printf with EXPECT_LE

* avoid re-allocations

Co-authored-by: Anas <anas.el.amraoui@live.com>
Co-authored-by: amir.tulegenov <amir.tulegenov@xperience.ai>
2021-02-15 19:55:57 +00:00
Alexander Alekhin
2fed41dfa5 imgproc(test): test bitExact cases in OCL/sepFilter2D 2020-07-08 10:14:56 +00:00
Alexander Alekhin
a1b09a3734 imgproc(perf): add GaussianBlur cases for SIFT 2020-05-17 10:15:31 +00: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
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
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
Alexander Alekhin
d5f152494b fix file names 2017-12-15 14:59:35 +03:00
Vitaly Tuzov
51cb56ef2c Implementation of bit-exact resize. Internal calls to linear resize updated to use bit-exact version. (#9468) 2017-12-13 15:00:38 +03:00
vipinanand4
39e742765a Merge pull request #9618 from vipinanand4:goodFeaturesToTrack_added_gradiantSize
Added gradiantSize param into goodFeaturesToTrack API (#9618)

* Added gradiantSize param into goodFeaturesToTrack API

Removed hardcode value 3 in goodFeaturesToTrack API, and
added new param 'gradinatSize' in this API so that user can
pass any gradiant size as 3, 5 or 7.

Signed-off-by: Vipin Anand <anand.vipin@gmail.com>
Signed-off-by: Nilaykumar Patel<nilay.nilpat@gmail.com>
Signed-off-by: Prashanth Voora <prashanthx85@gmail.com>

* fixed compilation error for java test

Signed-off-by: Vipin Anand <anand.vipin@gmail.com>

* Modifying code for previous binary compatibility and fixing other warnings

fixed ABI break issue

resolved merged conflict

compilation error fix

Signed-off-by: Vipin Anand <anand.vipin@gmail.com>
Signed-off-by: Patel, Nilaykumar K <nilay.nilpat@gmail.com>
2017-09-22 14:04:43 +00:00
Alexander Alekhin
006966e629 trace: initial support for code trace 2017-06-26 17:07:13 +03:00
Tomoaki Teshima
aec59aba34 suppress warnings
- brush up the implementation
2017-02-23 09:11:12 +09:00
Tomoaki Teshima
64cf206fb5 optimize blend using universal intrinsic
- add more channels/depth performance test for blend
2017-02-20 19:09:26 +09:00
Alexander Alekhin
f2e41ce391 ocl: fix input data for Canny perf test
"declare.in(img, WARMUP_RNG)" overrides input image with random values

Also added support for different input sizes (via cv::resize)
2016-08-09 15:49:22 +03:00
Alexander Karsakov
dfff9a8125 Added OCL performance test for YUV2RGB_IYUV, YUV2GRAY_420, RGB2YUV_IYUV, YUV2RGB_YUY2, YUV2GRAY_YUY2 color conversion modes 2014-10-08 17:25:51 +04:00
Alexander Karsakov
4880dd0cd6 Added performance test for OCL version of HoughLines and HoughLinesP 2014-09-30 11:03:54 +04:00
Alexander Alekhin
55188fe991 world fix 2014-08-05 20:12:35 +04:00
vbystricky
09bcc061dd Change kernel for optimization. Remove restriction to align data
Fix kernel compilation errors on AMD system

Fix licanse information in cl file

Support CV_64F destination type

Change build options of the kernel

Optimize sum of square

Remove separate kernel for integral square

Increase epsilon for perfomance tests

Increase epsilon for perfomance tests

Test double support on AMD devices

Fix some issues

Try to fix problems with AMD device

Try to solve problem with AMD device

Fix error of destination size in kernel

Fix warnings
2014-06-24 18:32:52 +04:00
vbystricky
655465d9f8 Increase epsilon for pass sanity check 2014-06-19 18:52:25 +04:00
vbystricky
eb54c83985 Fix error 2014-06-19 18:09:23 +04:00
vbystricky
6d6ad1b1d9 Change threshold 2014-06-19 17:45:04 +04:00
vbystricky
b32fbe72f6 Add peromance tests for OCL integral sum of square 2014-06-19 17:07:09 +04:00
Elena Gvozdeva
feeb386bf3 Added support for 3-channels 2014-06-11 11:49:22 +04:00
Alexander Alekhin
ab9dff12d5 Merge pull request #2812 from arkunze:pullreq/140520-filter2D 2014-06-04 12:20:54 +04:00
Ilya Lavrenov
108527c951 added missed INTER_CUBIC 2014-06-03 21:46:30 +04:00
Elena Gvozdeva
40eea303ec OCL: matchTemplate: changed perf test 2014-05-27 14:31:11 +04:00
Alexander Karsakov
fa1ed5580d Fixed cv::pyrUp performance test 2014-05-21 14:09:21 +04:00
Aaron Kunze
ab1a37d564 Bug fixes for filter2D and associated tests. 2014-05-20 22:30:09 -07:00
Alexander Alekhin
a82dd8ce48 Merge pull request #2700 from ilya-lavrenov:tapi_cvtColor 2014-05-08 17:01:38 +04:00
Ilya Lavrenov
3ccaa5294e added OpenCL RGB <-> Luv conversions 2014-05-07 18:09:57 +04:00
Ilya Lavrenov
1ad69aba35 changes sigma in perf tests 2014-05-07 14:59:03 +04:00
Ilya Lavrenov
884b706b3a fixed warning 2014-04-14 14:40:40 +04:00
mlyashko
70fdfa0bdb changed type of sanity check 2014-03-25 16:43:20 +04:00
mlyashko
953aafbd3d Merge branch 'master' of https://github.com/Itseez/opencv into back_proj_fix 2014-03-25 14:52:39 +04:00
mlyashko
f38fe76025 added perf test for CalcBackProj 2014-03-25 14:50:37 +04:00
Ilya Lavrenov
82e6edfba2 optimized sep filter 2014-03-18 00:16:38 +04:00
Andrey Pavlenko
2a1d5c6d43 Merge pull request #2428 from alalek:ocl_copyMakeBorder_3channels 2014-03-17 13:10:34 +04:00
Ilya Lavrenov
6f12f1b3b5 added 3 vs 4 channels performance tests 2014-03-14 17:30:14 +04:00
Alexander Alekhin
dca401d4cc ocl: pyrUp/pyrDown 3-channel 2014-03-12 14:39:55 +04:00
Alexander Alekhin
e7475bff68 TAPI: remap 3-channel 2014-03-10 20:35:10 +04:00
Alexander Alekhin
e4608229f0 ocl: copyMakeBorder 3-channel 2014-03-10 17:22:49 +04:00
Ilya Lavrenov
804b70b72f ported 2.4 perf tests for matchTemplate 2014-02-20 18:11:56 +04:00
Andrey Pavlenko
47d9b933f6 Merge pull request #2345 from ilya-lavrenov:tapi_3cn_perf 2014-02-17 17:38:26 +04:00
Ilya Lavrenov
c8e22c04c8 extended performance test 2014-02-16 13:42:25 +04:00
Ilya Lavrenov
7629bb78a4 extended performance tests to test 3 channels 2014-02-16 01:31:33 +04:00
Andrey Pavlenko
4b31b9cb8c Merge pull request #2251 from ilya-lavrenov:tapi_sqrboxfilter 2014-02-07 11:33:49 +04:00