for(int y=0;y<WGNumY;++y)
{
int gy = y*localThreads[1];
- if(gy>=(Height-cascade->orig_window_size.height))
+ if(gy>=Height)
continue; // no data to process
for(int x=0;x<WGNumX;++x)
{
int gx = x*localThreads[0];
- if(gx>=(Width-cascade->orig_window_size.width))
+ if(gx>=Width)
continue; // no data to process
if(scaleinfo[z].factor<=2)
int index = i+lid; // index in shared local memory
if(index<DATA_SIZE)
{// calc global x,y coordinat and read data from there
- int x = min(GroupX + (index % (DATA_SIZE_X)),Width-1);
- int y = min(GroupY + (index / (DATA_SIZE_X)),Height-1);
+ int x = min(GroupX + (index % (DATA_SIZE_X)),Width-1+WND_SIZE_X);
+ int y = min(GroupY + (index / (DATA_SIZE_X)),Height-1+WND_SIZE_Y);
SumL[index] = sum[ImgOffset+y*pixelstep+x];
}
}
flags,
Size(30, 30), Size(0, 0));
- EXPECT_LT(checkRectSimilarity(img.size(), faces, oclfaces), 1.0);
+ EXPECT_LT(checkRectSimilarity(img.size(), faces, oclfaces), 0.1);
}
OCL_TEST_P(Haar, FaceDetectUseBuf)
Size(30, 30));
cascadebuf.release();
- EXPECT_LT(checkRectSimilarity(img.size(), faces, oclfaces), 1.0);
+ EXPECT_LT(checkRectSimilarity(img.size(), faces, oclfaces), 0.1);
}
INSTANTIATE_TEST_CASE_P(OCL_ObjDetect, Haar,