void DensePyrLkOptFlowEstimatorGpu::run( InputArray frame0, InputArray frame1, InputOutputArray flowX, InputOutputArray flowY, OutputArray errors) { frame0_.upload(frame0.getMat()); frame1_.upload(frame1.getMat()); optFlowEstimator_.winSize = winSize_; optFlowEstimator_.maxLevel = maxLevel_; if (errors.needed()) { optFlowEstimator_.dense(frame0_, frame1_, flowX_, flowY_, &errors_); errors_.download(errors.getMatRef()); } else optFlowEstimator_.dense(frame0_, frame1_, flowX_, flowY_); flowX_.download(flowX.getMatRef()); flowY_.download(flowY.getMatRef()); }
void SparsePyrLkOptFlowEstimatorGpu::run( InputArray frame0, InputArray frame1, InputArray points0, InputOutputArray points1, OutputArray status, OutputArray errors) { frame0_.upload(frame0.getMat()); frame1_.upload(frame1.getMat()); points0_.upload(points0.getMat()); if (errors.needed()) { run(frame0_, frame1_, points0_, points1_, status_, errors_); errors_.download(errors.getMatRef()); } else run(frame0_, frame1_, points0_, points1_, status_); points1_.download(points1.getMatRef()); status_.download(status.getMatRef()); }