From: Kirill Kornyakov Date: Tue, 19 Jul 2011 11:17:03 +0000 (+0000) Subject: fix by Vadim in calcBackProject: additional case is considered X-Git-Tag: accepted/2.0/20130307.220821~2350 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e715894ffb9b47cf6d3b72c142b5f8279d334291;p=profile%2Fivi%2Fopencv.git fix by Vadim in calcBackProject: additional case is considered --- diff --git a/modules/imgproc/src/histogram.cpp b/modules/imgproc/src/histogram.cpp index 7a63b0a..8d1dd6f 100644 --- a/modules/imgproc/src/histogram.cpp +++ b/modules/imgproc/src/histogram.cpp @@ -1350,11 +1350,13 @@ void cv::calcBackProject( InputArrayOfArrays images, const vector& channels const vector& ranges, double scale ) { - int i, dims = hist.getMat().dims, rsz = (int)ranges.size(), csz = (int)channels.size(); + Mat H = hist.getMat(); + bool _1d = H.rows == 1 || H.cols == 1; + int i, dims = H.dims, rsz = (int)ranges.size(), csz = (int)channels.size(); int nimages = (int)images.total(); CV_Assert(nimages > 0); - CV_Assert(rsz == dims*2 || (rsz == 0 && images.depth(0) == CV_8U)); - CV_Assert(csz == 0 || csz == dims); + CV_Assert(rsz == dims*2 || (rsz == 2 && _1d) || (rsz == 0 && images.depth(0) == CV_8U)); + CV_Assert(csz == 0 || csz == dims || (csz == 1 && _1d)); float* _ranges[CV_MAX_DIM]; if( rsz > 0 ) {