namespace cv::superres

namespace superres {

// classes

class BroxOpticalFlow;
class DenseOpticalFlowExt;
class DualTVL1OpticalFlow;
class FarnebackOpticalFlow;
class FrameSource;
class PyrLKOpticalFlow;
class SuperResolution;

// global functions

Ptr<FrameSource>
createFrameSource_Camera(int deviceId = 0);

Ptr<FrameSource>
createFrameSource_Empty();

Ptr<FrameSource>
createFrameSource_Video(const String& fileName);

Ptr<FrameSource>
createFrameSource_Video_CUDA(const String& fileName);

Ptr<BroxOpticalFlow>
createOptFlow_Brox_CUDA();

Ptr<DualTVL1OpticalFlow>
createOptFlow_DualTVL1();

Ptr<DualTVL1OpticalFlow>
createOptFlow_DualTVL1_CUDA();

Ptr<FarnebackOpticalFlow>
createOptFlow_Farneback();

Ptr<FarnebackOpticalFlow>
createOptFlow_Farneback_CUDA();

Ptr<PyrLKOpticalFlow>
createOptFlow_PyrLK_CUDA();

Ptr<SuperResolution>
createSuperResolution_BTVL1();

Ptr<SuperResolution>
createSuperResolution_BTVL1_CUDA();

} // namespace superres