From 737444539831e1094463801c6d5f59ee464a01ad Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Mon, 28 Jan 2013 14:30:06 +0400 Subject: [PATCH] Fix integer overflow in NL-Means denoising on white input Issues #2646 --- modules/photo/src/fast_nlmeans_denoising_invoker.hpp | 2 +- modules/photo/src/fast_nlmeans_multi_denoising_invoker.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/photo/src/fast_nlmeans_denoising_invoker.hpp b/modules/photo/src/fast_nlmeans_denoising_invoker.hpp index 1dcb6b3ec..c4f13826d 100644 --- a/modules/photo/src/fast_nlmeans_denoising_invoker.hpp +++ b/modules/photo/src/fast_nlmeans_denoising_invoker.hpp @@ -257,7 +257,7 @@ void FastNlMeansDenoisingInvoker::operator() (const BlockedRange& range) cons } for (size_t channel_num = 0; channel_num < sizeof(T); channel_num++) - estimation[channel_num] = (estimation[channel_num] + weights_sum/2) / weights_sum; + estimation[channel_num] = ((unsigned)estimation[channel_num] + weights_sum/2) / weights_sum; dst_.at(i,j) = saturateCastFromArray(estimation); } diff --git a/modules/photo/src/fast_nlmeans_multi_denoising_invoker.hpp b/modules/photo/src/fast_nlmeans_multi_denoising_invoker.hpp index 870760b48..2ae5054e0 100644 --- a/modules/photo/src/fast_nlmeans_multi_denoising_invoker.hpp +++ b/modules/photo/src/fast_nlmeans_multi_denoising_invoker.hpp @@ -287,7 +287,7 @@ void FastNlMeansMultiDenoisingInvoker::operator() (const BlockedRange& range) } for (size_t channel_num = 0; channel_num < sizeof(T); channel_num++) - estimation[channel_num] = (estimation[channel_num] + weights_sum / 2) / weights_sum; + estimation[channel_num] = ((unsigned)estimation[channel_num] + weights_sum / 2) / weights_sum; dst_.at(i,j) = saturateCastFromArray(estimation);