From fd95d336f5893711031ee814252c5811df91881f Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Mon, 10 Nov 2025 10:58:12 +0000 Subject: [PATCH] Add description of specific gamma correction performed for cv::cuda::gammaCorrection --- modules/cudaimgproc/doc/cudaimgproc.bib | 9 +++++++++ .../cudaimgproc/doc/pics/gammacorrection.png | Bin 0 -> 21435 bytes .../cudaimgproc/include/opencv2/cudaimgproc.hpp | 13 +++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 modules/cudaimgproc/doc/pics/gammacorrection.png diff --git a/modules/cudaimgproc/doc/cudaimgproc.bib b/modules/cudaimgproc/doc/cudaimgproc.bib index cb36ade7f5..809c2c53f6 100644 --- a/modules/cudaimgproc/doc/cudaimgproc.bib +++ b/modules/cudaimgproc/doc/cudaimgproc.bib @@ -8,3 +8,12 @@ @article{Allegretti2019 year={2019}, publisher={IEEE} } + +@article{BT.709, + title={Recommendation ITU-R BT.709-6}, + author={ITU}, + pages={3}, + year={2015}, + publisher={ITU} + url={https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.709-6-201506-I!!PDF-E.pdf} +} diff --git a/modules/cudaimgproc/doc/pics/gammacorrection.png b/modules/cudaimgproc/doc/pics/gammacorrection.png new file mode 100644 index 0000000000000000000000000000000000000000..9dbd000961103d5ea05947fe471d05634171b5a6 GIT binary patch literal 21435 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

D=+{t7z$KSy zvaxCLLO~RRfQ56R?Lfi_4iSloo`@k43@+G?3}>D}=la8yHww;j_=lS=-|am-H}lTa zDN}fWDX2PPxk>TjOKQKuIM83^B_-;x5K7*9&|K#W3M_)I#(}7TO9L=gB4G|yftvhH zqp8Uq0HY}d`lJc#w>76vGM}lMZ^CR9ehmv9?NAuirm|qB=kABa&?umoH9lPtRrf*J zWV%0b!457e(Vhr#Fiq3Z0qjmPn<&fSHf>M#rgOPm;2t)+lqadKKHL0;l) zWLBl+EKa{D7Jr%D@)d~J*w}>%R!~qLGJ+f&;%uDk$Ydh{j!yCv5eP~fw$M!hESSFRe z2Ps^*F;u4$q3Qr*fp`Ud+FE?>EP=^5oc7^?2y z=i?!6N=rxD97jh#ut(GV##Gg-laQu^1;i5n+T*p%r?lpF-(H0K7zg7XGdKKewN7^r zNkB`=EIlS(AW zHX%)$2G+$9Utd>Si@-0G{ujBgLpKUDm3>8pg+TgxV|B5xARc$yThmFV+w2N*XY^j2 zU>e$B$|2A2EFm{c+4@{?F13N+$lHS>Bmu1T-=2;X6a`w^5^tqmjrNIIm6}1 zN-rz3OUEhXZ_HAooJkC8Iz>R5sAl}EFP2$0SCs$RmHBq=e}4Wyzw-B^n``(AOTQRx zaP*4Sex5_iJHw$D=SlB<%4Cl;JjLMXuu@gu8b2ptaKfJ1zI2Mlwvm`Tci#GWLPSwc NSQik;DEHrb= 0.018 + + V = 1.099 * L^0.45 - 0.099 + +With V then being scaled back to [0..255]. + +![image](pics/gammacorrection.png) + */ CV_EXPORTS_W void gammaCorrection(InputArray src, OutputArray dst, bool forward = true, Stream& stream = Stream::Null());