From 2411556242cd81fd707769cb2f23e739a3f46744 Mon Sep 17 00:00:00 2001 From: Adrien BAK Date: Tue, 30 Sep 2014 14:28:44 +0900 Subject: [PATCH] fix photo::cloning::IlluminationChange when IPP is used --- modules/photo/src/seamless_cloning.hpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/photo/src/seamless_cloning.hpp b/modules/photo/src/seamless_cloning.hpp index 669be9f..8f77e42 100644 --- a/modules/photo/src/seamless_cloning.hpp +++ b/modules/photo/src/seamless_cloning.hpp @@ -543,15 +543,19 @@ void Cloning::illum_change(Mat &I, Mat &mask, Mat &wmask, Mat &cloned, float alp Mat mag = Mat(I.size(),CV_32FC3); magnitude(srx32,sry32,mag); + Mat magnitude_mask = mag != 0; + Mat multX, multY, multx_temp, multy_temp; multiply(srx32,pow(alpha,beta),multX); pow(mag,-1*beta, multx_temp); - multiply(multX,multx_temp,srx32); + multiply(multX,multx_temp,multX); + multX.copyTo(srx32, magnitude_mask); multiply(sry32,pow(alpha,beta),multY); pow(mag,-1*beta, multy_temp); - multiply(multY,multy_temp,sry32); + multiply(multY,multy_temp,multY); + multY.copyTo(sry32, magnitude_mask); Mat zeroMask = (srx32 != 0); -- 2.7.4