@ -183,12 +183,11 @@ COOR do_meanShift(int x0, int y0, uchar *sptr, uchar *dptr, int sstep, cv::Size
if ( count = = 0 )
if ( count = = 0 )
break ;
break ;
double icount = 1.0 / count ;
int x1 = sx / count ;
int x1 = cvFloor ( sx * icount ) ;
int y1 = sy / count ;
int y1 = cvFloor ( sy * icount ) ;
s0 = s0 / count ;
s0 = cvFloor ( s0 * icount ) ;
s1 = s1 / count ;
s1 = cvFloor ( s1 * icount ) ;
s2 = s2 / count ;
s2 = cvFloor ( s2 * icount ) ;
bool stopFlag = ( x0 = = x1 & & y0 = = y1 ) | | ( abs ( x1 - x0 ) + abs ( y1 - y0 ) +
bool stopFlag = ( x0 = = x1 & & y0 = = y1 ) | | ( abs ( x1 - x0 ) + abs ( y1 - y0 ) +
tab [ s0 - c0 + 255 ] + tab [ s1 - c1 + 255 ] + tab [ s2 - c2 + 255 ] < = eps ) ;
tab [ s0 - c0 + 255 ] + tab [ s1 - c1 + 255 ] + tab [ s2 - c2 + 255 ] < = eps ) ;
@ -1370,9 +1369,7 @@ TEST_P(meanShiftFiltering, Mat)
gdst . download ( cpu_gdst ) ;
gdst . download ( cpu_gdst ) ;
char sss [ 1024 ] ;
char sss [ 1024 ] ;
char warning [ 300 ] = " Warning: If the selected device doesn't support double, a deviation will exist. \n If the accuracy is acceptable, please ignore it. \n " ;
sprintf ( sss , " roicols=%d,roirows=%d,srcx=%d,srcy=%d,dstx=%d,dsty=%d \n " , roicols , roirows , srcx , srcy , dstx , dsty ) ;
sprintf ( sss , " roicols=%d,roirows=%d,srcx=%d,srcy=%d,dstx=%d,dsty=%d \n " , roicols , roirows , srcx , srcy , dstx , dsty ) ;
strcat ( sss , warning ) ;
EXPECT_MAT_NEAR ( dst , cpu_gdst , 0.0 , sss ) ;
EXPECT_MAT_NEAR ( dst , cpu_gdst , 0.0 , sss ) ;
}
}
@ -1398,9 +1395,7 @@ TEST_P(meanShiftProc, Mat)
gdstCoor . download ( cpu_gdstCoor ) ;
gdstCoor . download ( cpu_gdstCoor ) ;
char sss [ 1024 ] ;
char sss [ 1024 ] ;
char warning [ 300 ] = " Warning: If the selected device doesn't support double, a deviation will exist. \n If the accuracy is acceptable, please ignore it. \n " ;
sprintf ( sss , " roicols=%d,roirows=%d,srcx=%d,srcy=%d,dstx=%d,dsty=%d \n " , roicols , roirows , srcx , srcy , dstx , dsty ) ;
sprintf ( sss , " roicols=%d,roirows=%d,srcx=%d,srcy=%d,dstx=%d,dsty=%d \n " , roicols , roirows , srcx , srcy , dstx , dsty ) ;
strcat ( sss , warning ) ;
EXPECT_MAT_NEAR ( dst , cpu_gdst , 0.0 , sss ) ;
EXPECT_MAT_NEAR ( dst , cpu_gdst , 0.0 , sss ) ;
EXPECT_MAT_NEAR ( dstCoor , cpu_gdstCoor , 0.0 , sss ) ;
EXPECT_MAT_NEAR ( dstCoor , cpu_gdstCoor , 0.0 , sss ) ;
}
}