return false;
if (maxLevel < 0 || winSize.width <= 2 || winSize.height <= 2)
return false;
- calcPatchSize(patch);
+ calcPatchSize();
if (patch.x <= 0 || patch.x >= 6 || patch.y <= 0 || patch.y >= 6)
return false;
if (!initWaveSize())
//bool getMinEigenVals;
private:
- void calcPatchSize(dim3 &patch)
+ int waveSize;
+ bool initWaveSize()
+ {
+ waveSize = 1;
+ if (isDeviceCPU())
+ return true;
+
+ ocl::Kernel kernel;
+ if (!kernel.create("lkSparse", cv::ocl::video::pyrlk_oclsrc, ""))
+ return false;
+ waveSize = (int)kernel.preferedWorkGroupSizeMultiple();
+ return true;
+ }
+ dim3 patch;
+ void calcPatchSize()
{
dim3 block;
//winSize.width *= cn;
block.z = patch.z = 1;
}
- private:
- int waveSize;
- dim3 patch;
- bool initWaveSize()
- {
- waveSize = 1;
- if (isDeviceCPU())
- return true;
- ocl::Kernel kernel;
- if (!kernel.create("lkSparse", cv::ocl::video::pyrlk_oclsrc, ""))
- return false;
- waveSize = (int)kernel.preferedWorkGroupSizeMultiple();
- return true;
- }
bool lkSparse_run(UMat &I, UMat &J, const UMat &prevPts, UMat &nextPts, UMat &status, UMat& err,
int ptcount, int level, dim3 patch)
{