Commit Graph

13 Commits

Author SHA1 Message Date
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
Alexander Smorkalov
98d678c2d2 Added check that YUYV input of cvtColor has even width. 2023-05-23 14:17:43 +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
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
Ilya Lavrenov
7e26cf569f typo 2015-09-11 19:01:18 +02:00
Ilya Lavrenov
2a8ef1d065 fixed memory leaks in cvtyuv tests 2015-09-11 18:47:11 +02:00
Ilya Lavrenov
6b9ebcbf3d deleted extra semicolons 2014-01-07 02:52:30 +04:00
Roman Donchenko
f55740da70 Deleted all trailing whitespace. 2013-08-21 18:59:24 +04:00
Daniil Osokin
d8f538d67b Added tests for RGB to YUV420p color conversion 2013-02-25 17:01:07 +04:00
OpenCV Buildbot
04384a71e4 Normalize line endings and whitespace 2012-10-17 15:32:23 +04:00
Andrey Kamaev
4ee2c486eb #1732 Added YUV422 conversions 2012-04-05 08:29:59 +00:00
Andrey Kamaev
fd31234122 Fixed gcc build 2012-03-31 23:51:59 +00:00
Andrey Kamaev
470f6fafeb Fixed conversions from YV12 and IYUV on non-continuous input. Added accuracy and performance tests. 2012-03-31 22:30:18 +00:00