~paparazzi-uav/paparazzi/v5.0-manual

« back to all changes in this revision

Viewing changes to sw/ext/opencv_bebop/opencv/modules/superres/include/opencv2/superres/optical_flow.hpp

  • Committer: Paparazzi buildbot
  • Date: 2016-05-18 15:00:29 UTC
  • Revision ID: felix.ruess+docbot@gmail.com-20160518150029-e8lgzi5kvb4p7un9
Manual import commit 4b8bbb730080dac23cf816b98908dacfabe2a8ec from v5.0 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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_OPTICAL_FLOW_HPP__
 
44
#define __OPENCV_SUPERRES_OPTICAL_FLOW_HPP__
 
45
 
 
46
#include "opencv2/core.hpp"
 
47
 
 
48
namespace cv
 
49
{
 
50
    namespace superres
 
51
    {
 
52
 
 
53
//! @addtogroup superres
 
54
//! @{
 
55
 
 
56
        class CV_EXPORTS DenseOpticalFlowExt : public cv::Algorithm
 
57
        {
 
58
        public:
 
59
            virtual void calc(InputArray frame0, InputArray frame1, OutputArray flow1, OutputArray flow2 = noArray()) = 0;
 
60
            virtual void collectGarbage() = 0;
 
61
        };
 
62
 
 
63
 
 
64
        class CV_EXPORTS FarnebackOpticalFlow : public virtual DenseOpticalFlowExt
 
65
        {
 
66
        public:
 
67
            /** @see setPyrScale */
 
68
            virtual double getPyrScale() const = 0;
 
69
            /** @copybrief getPyrScale @see getPyrScale */
 
70
            virtual void setPyrScale(double val) = 0;
 
71
            /** @see setLevelsNumber */
 
72
            virtual int getLevelsNumber() const = 0;
 
73
            /** @copybrief getLevelsNumber @see getLevelsNumber */
 
74
            virtual void setLevelsNumber(int val) = 0;
 
75
            /** @see setWindowSize */
 
76
            virtual int getWindowSize() const = 0;
 
77
            /** @copybrief getWindowSize @see getWindowSize */
 
78
            virtual void setWindowSize(int val) = 0;
 
79
            /** @see setIterations */
 
80
            virtual int getIterations() const = 0;
 
81
            /** @copybrief getIterations @see getIterations */
 
82
            virtual void setIterations(int val) = 0;
 
83
            /** @see setPolyN */
 
84
            virtual int getPolyN() const = 0;
 
85
            /** @copybrief getPolyN @see getPolyN */
 
86
            virtual void setPolyN(int val) = 0;
 
87
            /** @see setPolySigma */
 
88
            virtual double getPolySigma() const = 0;
 
89
            /** @copybrief getPolySigma @see getPolySigma */
 
90
            virtual void setPolySigma(double val) = 0;
 
91
            /** @see setFlags */
 
92
            virtual int getFlags() const = 0;
 
93
            /** @copybrief getFlags @see getFlags */
 
94
            virtual void setFlags(int val) = 0;
 
95
        };
 
96
        CV_EXPORTS Ptr<FarnebackOpticalFlow> createOptFlow_Farneback();
 
97
        CV_EXPORTS Ptr<FarnebackOpticalFlow> createOptFlow_Farneback_CUDA();
 
98
 
 
99
 
 
100
//        CV_EXPORTS Ptr<DenseOpticalFlowExt> createOptFlow_Simple();
 
101
 
 
102
 
 
103
        class CV_EXPORTS DualTVL1OpticalFlow : public virtual DenseOpticalFlowExt
 
104
        {
 
105
        public:
 
106
            /** @see setTau */
 
107
            virtual double getTau() const = 0;
 
108
            /** @copybrief getTau @see getTau */
 
109
            virtual void setTau(double val) = 0;
 
110
            /** @see setLambda */
 
111
            virtual double getLambda() const = 0;
 
112
            /** @copybrief getLambda @see getLambda */
 
113
            virtual void setLambda(double val) = 0;
 
114
            /** @see setTheta */
 
115
            virtual double getTheta() const = 0;
 
116
            /** @copybrief getTheta @see getTheta */
 
117
            virtual void setTheta(double val) = 0;
 
118
            /** @see setScalesNumber */
 
119
            virtual int getScalesNumber() const = 0;
 
120
            /** @copybrief getScalesNumber @see getScalesNumber */
 
121
            virtual void setScalesNumber(int val) = 0;
 
122
            /** @see setWarpingsNumber */
 
123
            virtual int getWarpingsNumber() const = 0;
 
124
            /** @copybrief getWarpingsNumber @see getWarpingsNumber */
 
125
            virtual void setWarpingsNumber(int val) = 0;
 
126
            /** @see setEpsilon */
 
127
            virtual double getEpsilon() const = 0;
 
128
            /** @copybrief getEpsilon @see getEpsilon */
 
129
            virtual void setEpsilon(double val) = 0;
 
130
            /** @see setIterations */
 
131
            virtual int getIterations() const = 0;
 
132
            /** @copybrief getIterations @see getIterations */
 
133
            virtual void setIterations(int val) = 0;
 
134
            /** @see setUseInitialFlow */
 
135
            virtual bool getUseInitialFlow() const = 0;
 
136
            /** @copybrief getUseInitialFlow @see getUseInitialFlow */
 
137
            virtual void setUseInitialFlow(bool val) = 0;
 
138
        };
 
139
        CV_EXPORTS Ptr<DualTVL1OpticalFlow> createOptFlow_DualTVL1();
 
140
        CV_EXPORTS Ptr<DualTVL1OpticalFlow> createOptFlow_DualTVL1_CUDA();
 
141
 
 
142
 
 
143
        class CV_EXPORTS BroxOpticalFlow : public virtual DenseOpticalFlowExt
 
144
        {
 
145
        public:
 
146
            //! @brief Flow smoothness
 
147
            /** @see setAlpha */
 
148
            virtual double getAlpha() const = 0;
 
149
            /** @copybrief getAlpha @see getAlpha */
 
150
            virtual void setAlpha(double val) = 0;
 
151
            //! @brief Gradient constancy importance
 
152
            /** @see setGamma */
 
153
            virtual double getGamma() const = 0;
 
154
            /** @copybrief getGamma @see getGamma */
 
155
            virtual void setGamma(double val) = 0;
 
156
            //! @brief Pyramid scale factor
 
157
            /** @see setScaleFactor */
 
158
            virtual double getScaleFactor() const = 0;
 
159
            /** @copybrief getScaleFactor @see getScaleFactor */
 
160
            virtual void setScaleFactor(double val) = 0;
 
161
            //! @brief Number of lagged non-linearity iterations (inner loop)
 
162
            /** @see setInnerIterations */
 
163
            virtual int getInnerIterations() const = 0;
 
164
            /** @copybrief getInnerIterations @see getInnerIterations */
 
165
            virtual void setInnerIterations(int val) = 0;
 
166
            //! @brief Number of warping iterations (number of pyramid levels)
 
167
            /** @see setOuterIterations */
 
168
            virtual int getOuterIterations() const = 0;
 
169
            /** @copybrief getOuterIterations @see getOuterIterations */
 
170
            virtual void setOuterIterations(int val) = 0;
 
171
            //! @brief Number of linear system solver iterations
 
172
            /** @see setSolverIterations */
 
173
            virtual int getSolverIterations() const = 0;
 
174
            /** @copybrief getSolverIterations @see getSolverIterations */
 
175
            virtual void setSolverIterations(int val) = 0;
 
176
        };
 
177
        CV_EXPORTS Ptr<BroxOpticalFlow> createOptFlow_Brox_CUDA();
 
178
 
 
179
 
 
180
        class PyrLKOpticalFlow : public virtual DenseOpticalFlowExt
 
181
        {
 
182
        public:
 
183
            /** @see setWindowSize */
 
184
            virtual int getWindowSize() const = 0;
 
185
            /** @copybrief getWindowSize @see getWindowSize */
 
186
            virtual void setWindowSize(int val) = 0;
 
187
            /** @see setMaxLevel */
 
188
            virtual int getMaxLevel() const = 0;
 
189
            /** @copybrief getMaxLevel @see getMaxLevel */
 
190
            virtual void setMaxLevel(int val) = 0;
 
191
            /** @see setIterations */
 
192
            virtual int getIterations() const = 0;
 
193
            /** @copybrief getIterations @see getIterations */
 
194
            virtual void setIterations(int val) = 0;
 
195
        };
 
196
        CV_EXPORTS Ptr<PyrLKOpticalFlow> createOptFlow_PyrLK_CUDA();
 
197
 
 
198
//! @}
 
199
 
 
200
    }
 
201
}
 
202
 
 
203
#endif // __OPENCV_SUPERRES_OPTICAL_FLOW_HPP__