Merge branch 2.4
This commit is contained in:
@@ -2592,39 +2592,36 @@ cvCompareHist( const CvHistogram* hist1,
|
||||
CV_IMPL void
|
||||
cvCopyHist( const CvHistogram* src, CvHistogram** _dst )
|
||||
{
|
||||
int eq = 0;
|
||||
int is_sparse;
|
||||
int i, dims1, dims2;
|
||||
int size1[CV_MAX_DIM], size2[CV_MAX_DIM], total = 1;
|
||||
float* ranges[CV_MAX_DIM];
|
||||
float** thresh = 0;
|
||||
CvHistogram* dst;
|
||||
|
||||
if( !_dst )
|
||||
CV_Error( CV_StsNullPtr, "Destination double pointer is NULL" );
|
||||
|
||||
dst = *_dst;
|
||||
CvHistogram* dst = *_dst;
|
||||
|
||||
if( !CV_IS_HIST(src) || (dst && !CV_IS_HIST(dst)) )
|
||||
CV_Error( CV_StsBadArg, "Invalid histogram header[s]" );
|
||||
|
||||
is_sparse = CV_IS_SPARSE_MAT(src->bins);
|
||||
dims1 = cvGetDims( src->bins, size1 );
|
||||
for( i = 0; i < dims1; i++ )
|
||||
total *= size1[i];
|
||||
|
||||
if( dst && is_sparse == CV_IS_SPARSE_MAT(dst->bins))
|
||||
bool eq = false;
|
||||
int size1[CV_MAX_DIM];
|
||||
bool is_sparse = CV_IS_SPARSE_MAT(src->bins);
|
||||
int dims1 = cvGetDims( src->bins, size1 );
|
||||
|
||||
if( dst && (is_sparse == CV_IS_SPARSE_MAT(dst->bins)))
|
||||
{
|
||||
dims2 = cvGetDims( dst->bins, size2 );
|
||||
int size2[CV_MAX_DIM];
|
||||
int dims2 = cvGetDims( dst->bins, size2 );
|
||||
|
||||
if( dims1 == dims2 )
|
||||
{
|
||||
int i;
|
||||
|
||||
for( i = 0; i < dims1; i++ )
|
||||
{
|
||||
if( size1[i] != size2[i] )
|
||||
break;
|
||||
}
|
||||
|
||||
eq = (i == dims1);
|
||||
}
|
||||
|
||||
eq = i == dims1;
|
||||
}
|
||||
|
||||
if( !eq )
|
||||
@@ -2636,14 +2633,21 @@ cvCopyHist( const CvHistogram* src, CvHistogram** _dst )
|
||||
|
||||
if( CV_HIST_HAS_RANGES( src ))
|
||||
{
|
||||
float* ranges[CV_MAX_DIM];
|
||||
float** thresh = 0;
|
||||
|
||||
if( CV_IS_UNIFORM_HIST( src ))
|
||||
{
|
||||
for( i = 0; i < dims1; i++ )
|
||||
for( int i = 0; i < dims1; i++ )
|
||||
ranges[i] = (float*)src->thresh[i];
|
||||
|
||||
thresh = ranges;
|
||||
}
|
||||
else
|
||||
{
|
||||
thresh = src->thresh2;
|
||||
}
|
||||
|
||||
cvSetHistBinRanges( dst, thresh, CV_IS_UNIFORM_HIST(src));
|
||||
}
|
||||
|
||||
|
@@ -327,11 +327,10 @@ pyrUp_( const Mat& _src, Mat& _dst, int)
|
||||
|
||||
CV_Assert( std::abs(dsize.width - ssize.width*2) == dsize.width % 2 &&
|
||||
std::abs(dsize.height - ssize.height*2) == dsize.height % 2);
|
||||
int k, x, sy0 = -PU_SZ/2, sy = sy0, width0 = ssize.width - 1;
|
||||
int k, x, sy0 = -PU_SZ/2, sy = sy0;
|
||||
|
||||
ssize.width *= cn;
|
||||
dsize.width *= cn;
|
||||
width0 *= cn;
|
||||
|
||||
for( x = 0; x < ssize.width; x++ )
|
||||
dtab[x] = (x/cn)*2*cn + x % cn;
|
||||
|
Reference in New Issue
Block a user