superres.hpp
Go to the documentation of this file.
1 /*M///////////////////////////////////////////////////////////////////////////////////////
2 //
3 // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 //
5 // By downloading, copying, installing or using the software you agree to this license.
6 // If you do not agree to this license, do not download, install,
7 // copy or use the software.
8 //
9 //
10 // License Agreement
11 // For Open Source Computer Vision Library
12 //
13 // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14 // Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15 // Third party copyrights are property of their respective owners.
16 //
17 // Redistribution and use in source and binary forms, with or without modification,
18 // are permitted provided that the following conditions are met:
19 //
20 // * Redistribution's of source code must retain the above copyright notice,
21 // this list of conditions and the following disclaimer.
22 //
23 // * Redistribution's in binary form must reproduce the above copyright notice,
24 // this list of conditions and the following disclaimer in the documentation
25 // and/or other materials provided with the distribution.
26 //
27 // * The name of the copyright holders may not be used to endorse or promote products
28 // derived from this software without specific prior written permission.
29 //
30 // This software is provided by the copyright holders and contributors "as is" and
31 // any express or implied warranties, including, but not limited to, the implied
32 // warranties of merchantability and fitness for a particular purpose are disclaimed.
33 // In no event shall the Intel Corporation or contributors be liable for any direct,
34 // indirect, incidental, special, exemplary, or consequential damages
35 // (including, but not limited to, procurement of substitute goods or services;
36 // loss of use, data, or profits; or business interruption) however caused
37 // and on any theory of liability, whether in contract, strict liability,
38 // or tort (including negligence or otherwise) arising in any way out of
39 // the use of this software, even if advised of the possibility of such damage.
40 //
41 //M*/
42 
43 #ifndef __OPENCV_SUPERRES_HPP__
44 #define __OPENCV_SUPERRES_HPP__
45 
46 #include "opencv2/core/core.hpp"
47 
48 namespace cv
49 {
50  namespace superres
51  {
52  CV_EXPORTS bool initModule_superres();
53 
54  class CV_EXPORTS FrameSource
55  {
56  public:
57  virtual ~FrameSource();
58 
59  virtual void nextFrame(OutputArray frame) = 0;
60  virtual void reset() = 0;
61  };
62 
64 
65  CV_EXPORTS Ptr<FrameSource> createFrameSource_Video(const std::string& fileName);
66  CV_EXPORTS Ptr<FrameSource> createFrameSource_Video_GPU(const std::string& fileName);
67 
68  CV_EXPORTS Ptr<FrameSource> createFrameSource_Camera(int deviceId = 0);
69 
70  class CV_EXPORTS SuperResolution : public cv::Algorithm, public FrameSource
71  {
72  public:
73  void setInput(const Ptr<FrameSource>& frameSource);
74 
76  void reset();
77 
78  virtual void collectGarbage();
79 
80  protected:
82 
83  virtual void initImpl(Ptr<FrameSource>& frameSource) = 0;
84  virtual void processImpl(Ptr<FrameSource>& frameSource, OutputArray output) = 0;
85 
86  private:
87  Ptr<FrameSource> frameSource_;
88  bool firstCall_;
89  };
90 
91  // S. Farsiu , D. Robinson, M. Elad, P. Milanfar. Fast and robust multiframe super resolution.
92  // Dennis Mitzel, Thomas Pock, Thomas Schoenemann, Daniel Cremers. Video Super Resolution using Duality Based TV-L1 Optical Flow.
96  }
97 }
98 
99 #endif // __OPENCV_SUPERRES_HPP__
Matrix44< T > nextFrame(const Matrix44< T > &prevMatrix, const Vec3< T > &prevPoint, const Vec3< T > &curPoint, Vec3< T > &prevTangent, Vec3< T > &curTangent)
CV_EXPORTS Ptr< SuperResolution > createSuperResolution_BTVL1_GPU()
CV_EXPORTS bool initModule_superres()
CV_EXPORTS Ptr< FrameSource > createFrameSource_Video_GPU(const std::string &fileName)
void void * output
Definition: legacy.hpp:84
CV_EXPORTS Ptr< FrameSource > createFrameSource_Empty()
CV_EXPORTS Ptr< SuperResolution > createSuperResolution_BTVL1_OCL()
CV_EXPORTS Ptr< FrameSource > createFrameSource_Camera(int deviceId=0)
Definition: superres.hpp:70
The Core Functionality.
void void * frame
Definition: core_c.h:1459
Base class for high-level OpenCV algorithms.
Definition: core.hpp:4390
CV_EXPORTS Ptr< SuperResolution > createSuperResolution_BTVL1()
GLboolean reset
Smart pointer to dynamically allocated objects.
Definition: core.hpp:1268
CV_EXPORTS Ptr< FrameSource > createFrameSource_Video(const std::string &fileName)
Proxy datatype for passing Mat's and vector<>'s as input parameters.
Definition: core.hpp:1400
Definition: superres.hpp:54