From 6997d423c8149ac334aa97a8c2348fd533953395 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Fri, 25 Dec 2015 15:33:06 +0300 Subject: [PATCH] fix normalize in case of inplace operations fixes #5876 --- modules/core/src/convert.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/core/src/convert.cpp b/modules/core/src/convert.cpp index 6c693a43a..f41bfa105 100644 --- a/modules/core/src/convert.cpp +++ b/modules/core/src/convert.cpp @@ -5352,22 +5352,21 @@ void cv::normalize( InputArray _src, InputOutputArray _dst, double a, double b, else CV_Error( CV_StsBadArg, "Unknown/unsupported norm type" ); - int type = _src.type(), depth = CV_MAT_DEPTH(type), cn = CV_MAT_CN(type); + int type = _src.type(), depth = CV_MAT_DEPTH(type); if( rtype < 0 ) rtype = _dst.fixedType() ? _dst.depth() : depth; - _dst.createSameSize(_src, CV_MAKETYPE(rtype, cn)); CV_OCL_RUN(_dst.isUMat(), ocl_normalize(_src, _dst, _mask, rtype, scale, shift)) - Mat src = _src.getMat(), dst = _dst.getMat(); + Mat src = _src.getMat(); if( _mask.empty() ) - src.convertTo( dst, rtype, scale, shift ); + src.convertTo( _dst, rtype, scale, shift ); else { Mat temp; src.convertTo( temp, rtype, scale, shift ); - temp.copyTo( dst, _mask ); + temp.copyTo( _dst, _mask ); } }