From b4be7469fbf6d56ad090a80b7fde0644e2367470 Mon Sep 17 00:00:00 2001 From: TracelessLe Date: Thu, 18 Nov 2021 15:31:19 +0800 Subject: [PATCH] Update color_cvt.hpp fix a potential overflow bug in cv::cuda::cvtColor(cv::COLOR_Lab2BGR) func, which need to clamp on B/G/R. --- .../include/opencv2/cudev/functional/detail/color_cvt.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/cudev/include/opencv2/cudev/functional/detail/color_cvt.hpp b/modules/cudev/include/opencv2/cudev/functional/detail/color_cvt.hpp index 4818ef1f4e2..6637795b2fe 100644 --- a/modules/cudev/include/opencv2/cudev/functional/detail/color_cvt.hpp +++ b/modules/cudev/include/opencv2/cudev/functional/detail/color_cvt.hpp @@ -1083,9 +1083,9 @@ namespace color_cvt_detail else Z = Z * Z * Z; - float B = 0.052891f * X - 0.204043f * Y + 1.151152f * Z; - float G = -0.921235f * X + 1.875991f * Y + 0.045244f * Z; - float R = 3.079933f * X - 1.537150f * Y - 0.542782f * Z; + float B = __saturatef(0.052891f * X - 0.204043f * Y + 1.151152f * Z); //need __saturatef values to (0.0, 1.0) + float G = __saturatef(-0.921235f * X + 1.875991f * Y + 0.045244f * Z); + float R = __saturatef(3.079933f * X - 1.537150f * Y - 0.542782f * Z); if (srgb) {