mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
fix meanShift mismatch on none-double GPUs
This commit is contained in:
@@ -183,12 +183,11 @@ COOR do_meanShift(int x0, int y0, uchar *sptr, uchar *dptr, int sstep, cv::Size
|
||||
if( count == 0 )
|
||||
break;
|
||||
|
||||
double icount = 1.0 / count;
|
||||
int x1 = cvFloor(sx * icount);
|
||||
int y1 = cvFloor(sy * icount);
|
||||
s0 = cvFloor(s0 * icount);
|
||||
s1 = cvFloor(s1 * icount);
|
||||
s2 = cvFloor(s2 * icount);
|
||||
int x1 = sx / count;
|
||||
int y1 = sy / count;
|
||||
s0 = s0 / count;
|
||||
s1 = s1 / count;
|
||||
s2 = s2 / count;
|
||||
|
||||
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);
|
||||
@@ -1370,9 +1369,7 @@ TEST_P(meanShiftFiltering, Mat)
|
||||
gdst.download(cpu_gdst);
|
||||
|
||||
char sss[1024];
|
||||
char warning[300] = "Warning: If the selected device doesn't support double, a deviation will exist.\nIf 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);
|
||||
strcat(sss, warning);
|
||||
EXPECT_MAT_NEAR(dst, cpu_gdst, 0.0, sss);
|
||||
|
||||
}
|
||||
@@ -1398,9 +1395,7 @@ TEST_P(meanShiftProc, Mat)
|
||||
gdstCoor.download(cpu_gdstCoor);
|
||||
|
||||
char sss[1024];
|
||||
char warning[300] = "Warning: If the selected device doesn't support double, a deviation will exist.\nIf 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);
|
||||
strcat(sss, warning);
|
||||
EXPECT_MAT_NEAR(dst, cpu_gdst, 0.0, sss);
|
||||
EXPECT_MAT_NEAR(dstCoor, cpu_gdstCoor, 0.0, sss);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user