From e715894ffb9b47cf6d3b72c142b5f8279d334291 Mon Sep 17 00:00:00 2001 From: Kirill Kornyakov Date: Tue, 19 Jul 2011 11:17:03 +0000 Subject: [PATCH] fix by Vadim in calcBackProject: additional case is considered --- modules/imgproc/src/histogram.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/imgproc/src/histogram.cpp b/modules/imgproc/src/histogram.cpp index 7a63b0ae23..8d1dd6f956 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 ) {