Commit 5691fd3a authored by Andrey Kamaev's avatar Andrey Kamaev Committed by OpenCV Buildbot

Merge pull request #503 from taka-no-me:fix_docs

parents 5cc2a6bd 60f7b1d9
...@@ -38,7 +38,7 @@ doc_signatures_whitelist = [ ...@@ -38,7 +38,7 @@ doc_signatures_whitelist = [
"CvArr", "CvFileStorage", "CvArr", "CvFileStorage",
# other # other
"InputArray", "OutputArray", "InputArray", "OutputArray",
] ] + ["CvSubdiv2D", "CvQuadEdge2D", "CvSubdiv2DPoint", "cvDrawContours"]
defines = ["cvGraphEdgeIdx", "cvFree", "CV_Assert", "cvSqrt", "cvGetGraphVtx", "cvGraphVtxIdx", defines = ["cvGraphEdgeIdx", "cvFree", "CV_Assert", "cvSqrt", "cvGetGraphVtx", "cvGraphVtxIdx",
"cvCaptureFromFile", "cvCaptureFromCAM", "cvCalcBackProjectPatch", "cvCalcBackProject", "cvCaptureFromFile", "cvCaptureFromCAM", "cvCalcBackProjectPatch", "cvCalcBackProject",
......
...@@ -992,6 +992,11 @@ class DefinitionParser(object): ...@@ -992,6 +992,11 @@ class DefinitionParser(object):
return rv return rv
def _parse_signature(self): def _parse_signature(self):
if r'CvStatModel::train' in self.definition:
# hack to skip parsing of problematic definition
self.pos = self.end
return [ArgumentDefExpr("const Mat&", "train_data", None), ArgumentDefExpr(None, self.definition[self.definition.find("["):-1], None)], False, True
self.skip_ws() self.skip_ws()
if not self.skip_string('('): if not self.skip_string('('):
self.fail('expected parentheses for function') self.fail('expected parentheses for function')
...@@ -1075,6 +1080,17 @@ class DefinitionParser(object): ...@@ -1075,6 +1080,17 @@ class DefinitionParser(object):
value = None value = None
return MemberObjDefExpr(name, visibility, static, typename, value) return MemberObjDefExpr(name, visibility, static, typename, value)
def parse_enum_member_object(self):
visibility, static = self._parse_visibility_static()
typename = None
name = self._parse_type()
self.skip_ws()
if self.skip_string('='):
value = self.read_rest().strip()
else:
value = None
return MemberObjDefExpr(name, visibility, static, typename, value)
def parse_function(self): def parse_function(self):
visibility, static = self._parse_visibility_static() visibility, static = self._parse_visibility_static()
if self.skip_word('explicit'): if self.skip_word('explicit'):
...@@ -1180,6 +1196,8 @@ class OCVObject(ObjectDescription): ...@@ -1180,6 +1196,8 @@ class OCVObject(ObjectDescription):
def add_target_and_index(self, sigobj, sig, signode): def add_target_and_index(self, sigobj, sig, signode):
theid = sig#obj.get_id() theid = sig#obj.get_id()
theid = re.sub(r" +", " ", theid) theid = re.sub(r" +", " ", theid)
if self.objtype == 'emember':
theid = re.sub(r" ?=.*", "", theid)
theid = re.sub(r"=[^,()]+\([^)]*?\)[^,)]*(,|\))", "\\1", theid) theid = re.sub(r"=[^,()]+\([^)]*?\)[^,)]*(,|\))", "\\1", theid)
theid = re.sub(r"=\w*[^,)(]+(,|\))", "\\1", theid) theid = re.sub(r"=\w*[^,)(]+(,|\))", "\\1", theid)
theid = theid.replace("( ", "(").replace(" )", ")") theid = theid.replace("( ", "(").replace(" )", ")")
...@@ -1293,6 +1311,25 @@ class OCVTypeObject(OCVObject): ...@@ -1293,6 +1311,25 @@ class OCVTypeObject(OCVObject):
signode += nodes.Text(' ') signode += nodes.Text(' ')
self.attach_name(signode, obj.name) self.attach_name(signode, obj.name)
class OCVEnumObject(OCVObject):
def get_index_text(self, name):
if self.objtype == 'enum':
return _('%s (enum)') % name
return ''
def parse_definition(self, parser):
return parser.parse_type_object()
def describe_signature(self, signode, obj):
self.attach_modifiers(signode, obj)
signode += addnodes.desc_annotation('enum ', 'enum ')
if obj.typename is not None:
self.attach_type(signode, obj.typename)
signode += nodes.Text(' ')
self.attach_name(signode, obj.name)
class OCVMemberObject(OCVObject): class OCVMemberObject(OCVObject):
ismember = True ismember = True
...@@ -1309,12 +1346,20 @@ class OCVMemberObject(OCVObject): ...@@ -1309,12 +1346,20 @@ class OCVMemberObject(OCVObject):
def describe_signature(self, signode, obj): def describe_signature(self, signode, obj):
self.attach_modifiers(signode, obj) self.attach_modifiers(signode, obj)
self.attach_type(signode, obj.typename) if obj.typename:
signode += nodes.Text(' ') self.attach_type(signode, obj.typename)
signode += nodes.Text(' ')
self.attach_name(signode, obj.name) self.attach_name(signode, obj.name)
if obj.value is not None: if obj.value is not None:
signode += nodes.Text(u' = ' + obj.value) signode += nodes.Text(u' = ' + obj.value)
class OCVEnumMemberObject(OCVMemberObject):
def parse_definition(self, parser):
# parent_class = self.env.temp_data.get('ocv:parent')
# if parent_class is None:
# parser.fail("missing parent structure/class")
return parser.parse_enum_member_object()
class OCVFunctionObject(OCVObject): class OCVFunctionObject(OCVObject):
def attach_function(self, node, func): def attach_function(self, node, func):
...@@ -1448,7 +1493,9 @@ class OCVDomain(Domain): ...@@ -1448,7 +1493,9 @@ class OCVDomain(Domain):
'pyfunction': ObjType(l_('pyfunction'), 'pyfunc'), 'pyfunction': ObjType(l_('pyfunction'), 'pyfunc'),
'pyoldfunction': ObjType(l_('pyoldfunction'), 'pyoldfunc'), 'pyoldfunction': ObjType(l_('pyoldfunction'), 'pyoldfunc'),
'member': ObjType(l_('member'), 'member'), 'member': ObjType(l_('member'), 'member'),
'type': ObjType(l_('type'), 'type') 'emember': ObjType(l_('emember'), 'emember'),
'type': ObjType(l_('type'), 'type'),
'enum': ObjType(l_('enum'), 'enum')
} }
directives = { directives = {
...@@ -1460,7 +1507,9 @@ class OCVDomain(Domain): ...@@ -1460,7 +1507,9 @@ class OCVDomain(Domain):
'pyfunction': OCVPyModulelevel, 'pyfunction': OCVPyModulelevel,
'pyoldfunction': OCVPyOldModulelevel, 'pyoldfunction': OCVPyOldModulelevel,
'member': OCVMemberObject, 'member': OCVMemberObject,
'emember': OCVEnumMemberObject,
'type': OCVTypeObject, 'type': OCVTypeObject,
'enum': OCVEnumObject,
'namespace': OCVCurrentNamespace 'namespace': OCVCurrentNamespace
} }
roles = { roles = {
...@@ -1475,7 +1524,9 @@ class OCVDomain(Domain): ...@@ -1475,7 +1524,9 @@ class OCVDomain(Domain):
'pyfunc' : OCVPyXRefRole(), 'pyfunc' : OCVPyXRefRole(),
'pyoldfunc' : OCVPyXRefRole(), 'pyoldfunc' : OCVPyXRefRole(),
'member': OCVXRefRole(), 'member': OCVXRefRole(),
'type': OCVXRefRole() 'emember': OCVXRefRole(),
'type': OCVXRefRole(),
'enum': OCVXRefRole()
} }
initial_data = { initial_data = {
'objects': {}, # fullname -> docname, objtype 'objects': {}, # fullname -> docname, objtype
...@@ -1563,7 +1614,9 @@ class OCVDomain(Domain): ...@@ -1563,7 +1614,9 @@ class OCVDomain(Domain):
'pyfunction': _('Python function'), 'pyfunction': _('Python function'),
'pyoldfunction': _('Legacy Python function'), 'pyoldfunction': _('Legacy Python function'),
'member': _('C++ member'), 'member': _('C++ member'),
'emember': _('enum member'),
'type': _('C/C++ type'), 'type': _('C/C++ type'),
'enum': _('C/C++ enum'),
'namespace': _('C++ namespace'), 'namespace': _('C++ namespace'),
}.get(type.lname, _('%s %s') % (self.label, type.lname)) }.get(type.lname, _('%s %s') % (self.label, type.lname))
......
...@@ -210,9 +210,9 @@ You need the following software to be installed in order to develop for Android ...@@ -210,9 +210,9 @@ You need the following software to be installed in order to develop for Android
.. note:: Before start you can read official Android NDK documentation which is in the Android .. note:: Before start you can read official Android NDK documentation which is in the Android
NDK archive, in the folder :file:`docs/`. NDK archive, in the folder :file:`docs/`.
The main article about using Android NDK build system is in the :file:`ANDROID-MK.html` file. The main article about using Android NDK build system is in the :file:`ANDROID-MK.html` file.
Some additional information you can find in the :file:`APPLICATION-MK.html`, Some additional information you can find in
:file:`NDK-BUILD.html` files, and :file:`CPU-ARM-NEON.html`, :file:`CPLUSPLUS-SUPPORT.html`, the :file:`APPLICATION-MK.html`, :file:`NDK-BUILD.html` files,
:file:`PREBUILTS.html`. and :file:`CPU-ARM-NEON.html`, :file:`CPLUSPLUS-SUPPORT.html`, :file:`PREBUILTS.html`.
#. **CDT plugin for Eclipse** #. **CDT plugin for Eclipse**
......
...@@ -35,8 +35,8 @@ Starting from version 2.4.4 OpenCV includes desktop Java bindings. ...@@ -35,8 +35,8 @@ Starting from version 2.4.4 OpenCV includes desktop Java bindings.
The most simple way to get it is downloading the appropriate package of **version 2.4.4 or higher** from the The most simple way to get it is downloading the appropriate package of **version 2.4.4 or higher** from the
`OpenCV SourceForge repository <http://sourceforge.net/projects/opencvlibrary/files/>`_. `OpenCV SourceForge repository <http://sourceforge.net/projects/opencvlibrary/files/>`_.
.. note:: Windows users can find the prebuilt files needed for Java development in the .. note:: Windows users can find the prebuilt files needed for Java development in
:file:`opencv/build/java/` folder inside the package. the :file:`opencv/build/java/` folder inside the package.
For other OSes it's required to build OpenCV from sources. For other OSes it's required to build OpenCV from sources.
Another option to get OpenCV sources is to clone `OpenCV git repository Another option to get OpenCV sources is to clone `OpenCV git repository
......
...@@ -2064,10 +2064,11 @@ SparseMat::SparseMat ...@@ -2064,10 +2064,11 @@ SparseMat::SparseMat
Various SparseMat constructors. Various SparseMat constructors.
.. ocv:function:: SparseMat::SparseMat() .. ocv:function:: SparseMat::SparseMat()
.. ocv:function:: SparseMat::SparseMat(int dims, const int* _sizes, int _type) .. ocv:function:: SparseMat::SparseMat( int dims, const int* _sizes, int _type )
.. ocv:function:: SparseMat::SparseMat(const SparseMat& m) .. ocv:function:: SparseMat::SparseMat( const SparseMat& m )
.. ocv:function:: SparseMat::SparseMat(const Mat& m, bool try1d=false) .. ocv:function:: SparseMat::SparseMat( const Mat& m )
.. ocv:function:: SparseMat::SparseMat(const CvSparseMat* m) .. ocv:function:: SparseMat::SparseMat( const CvSparseMat* m )
:param m: Source matrix for copy constructor. If m is dense matrix (ocv:class:`Mat`) then it will be converted to sparse representation. :param m: Source matrix for copy constructor. If m is dense matrix (ocv:class:`Mat`) then it will be converted to sparse representation.
:param dims: Array dimensionality. :param dims: Array dimensionality.
...@@ -2081,12 +2082,12 @@ SparseMat object destructor. ...@@ -2081,12 +2082,12 @@ SparseMat object destructor.
.. ocv:function:: SparseMat::~SparseMat() .. ocv:function:: SparseMat::~SparseMat()
SparseMat::operator = SparseMat::operator=
--------------------- --------------------
Provides sparse matrix assignment operators. Provides sparse matrix assignment operators.
.. ocv:function:: SparseMat& SparseMat::operator=(const SparseMat& m) .. ocv:function:: SparseMat& SparseMat::operator = (const SparseMat& m)
.. ocv:function:: SparseMat& SparseMat::operator=(const Mat& m) .. ocv:function:: SparseMat& SparseMat::operator = (const Mat& m)
The last variant is equivalent to the corresponding constructor with try1d=false. The last variant is equivalent to the corresponding constructor with try1d=false.
......
...@@ -444,9 +444,9 @@ If ``threads == 0``, OpenCV will disable threading optimizations and run all it' ...@@ -444,9 +444,9 @@ If ``threads == 0``, OpenCV will disable threading optimizations and run all it'
functions sequentially. Passing ``threads < 0`` will reset threads number to system default. functions sequentially. Passing ``threads < 0`` will reset threads number to system default.
This function must be called outside of parallel region. This function must be called outside of parallel region.
.. ocv:function:: void setNumThreads(int threads) .. ocv:function:: void setNumThreads(int nthreads)
:param threads: Number of threads used by OpenCV. :param nthreads: Number of threads used by OpenCV.
OpenCV will try to run it's functions with specified threads number, but OpenCV will try to run it's functions with specified threads number, but
some behaviour differs from framework: some behaviour differs from framework:
......
...@@ -531,7 +531,7 @@ StarAdjuster ...@@ -531,7 +531,7 @@ StarAdjuster
SurfAdjuster SurfAdjuster
------------ ------------
.. ocv:class:: SurfAdjuster: public AdjusterAdapter .. ocv:class:: SurfAdjuster : public AdjusterAdapter
:ocv:class:`AdjusterAdapter` for ``SurfFeatureDetector``. :: :ocv:class:`AdjusterAdapter` for ``SurfFeatureDetector``. ::
......
...@@ -352,9 +352,9 @@ gpu::Stream::enqueueMemSet ...@@ -352,9 +352,9 @@ gpu::Stream::enqueueMemSet
-------------------------- --------------------------
Initializes or sets device memory to a value. Initializes or sets device memory to a value.
.. ocv:function:: void gpu::Stream::enqueueMemSet(const GpuMat& src, Scalar val) .. ocv:function:: void gpu::Stream::enqueueMemSet( GpuMat& src, Scalar val )
.. ocv:function:: void gpu::Stream::enqueueMemSet(const GpuMat& src, Scalar val, const GpuMat& mask) .. ocv:function:: void gpu::Stream::enqueueMemSet( GpuMat& src, Scalar val, const GpuMat& mask )
...@@ -362,7 +362,7 @@ gpu::Stream::enqueueConvert ...@@ -362,7 +362,7 @@ gpu::Stream::enqueueConvert
--------------------------- ---------------------------
Converts matrix type, ex from float to uchar depending on type. Converts matrix type, ex from float to uchar depending on type.
.. ocv:function:: void gpu::Stream::enqueueConvert(const GpuMat& src, GpuMat& dst, int type, double a = 1, double b = 0) .. ocv:function:: void gpu::Stream::enqueueConvert( const GpuMat& src, GpuMat& dst, int dtype, double a=1, double b=0 )
......
...@@ -47,20 +47,19 @@ Any subsequent API call to this device will reinitialize the device. ...@@ -47,20 +47,19 @@ Any subsequent API call to this device will reinitialize the device.
gpu::FeatureSet gpu::FeatureSet
--------------- ---------------
Enumeration providing GPU computing features. :: Enumeration providing GPU computing features.
enum FeatureSet .. ocv:enum:: gpu::FeatureSet
{
FEATURE_SET_COMPUTE_10, .. ocv:emember:: FEATURE_SET_COMPUTE_10
FEATURE_SET_COMPUTE_11, .. ocv:emember:: FEATURE_SET_COMPUTE_11
FEATURE_SET_COMPUTE_12, .. ocv:emember:: FEATURE_SET_COMPUTE_12
FEATURE_SET_COMPUTE_13, .. ocv:emember:: FEATURE_SET_COMPUTE_13
FEATURE_SET_COMPUTE_20, .. ocv:emember:: FEATURE_SET_COMPUTE_20
FEATURE_SET_COMPUTE_21, .. ocv:emember:: FEATURE_SET_COMPUTE_21
GLOBAL_ATOMICS, .. ocv:emember:: GLOBAL_ATOMICS
SHARED_ATOMICS, .. ocv:emember:: SHARED_ATOMICS
NATIVE_DOUBLE .. ocv:emember:: NATIVE_DOUBLE
};
gpu::TargetArchs gpu::TargetArchs
...@@ -73,7 +72,7 @@ The following method checks whether the module was built with the support of the ...@@ -73,7 +72,7 @@ The following method checks whether the module was built with the support of the
.. ocv:function:: static bool gpu::TargetArchs::builtWith( FeatureSet feature_set ) .. ocv:function:: static bool gpu::TargetArchs::builtWith( FeatureSet feature_set )
:param feature_set: Features to be checked. See :ocv:class:`gpu::FeatureSet`. :param feature_set: Features to be checked. See :ocv:enum:`gpu::FeatureSet`.
There is a set of methods to check whether the module contains intermediate (PTX) or binary GPU code for the given architecture(s): There is a set of methods to check whether the module contains intermediate (PTX) or binary GPU code for the given architecture(s):
...@@ -197,7 +196,7 @@ Provides information on GPU feature support. ...@@ -197,7 +196,7 @@ Provides information on GPU feature support.
.. ocv:function:: bool gpu::DeviceInfo::supports( FeatureSet feature_set ) const .. ocv:function:: bool gpu::DeviceInfo::supports( FeatureSet feature_set ) const
:param feature_set: Features to be checked. See :ocv:class:`gpu::FeatureSet`. :param feature_set: Features to be checked. See :ocv:enum:`gpu::FeatureSet`.
This function returns ``true`` if the device has the specified GPU feature. Otherwise, it returns ``false`` . This function returns ``true`` if the device has the specified GPU feature. Otherwise, it returns ``false`` .
......
...@@ -985,41 +985,51 @@ Class for reading video from files. ...@@ -985,41 +985,51 @@ Class for reading video from files.
gpu::VideoReader_GPU::Codec gpu::VideoReader_GPU::Codec
--------------------------- ---------------------------
Video codecs supported by :ocv:class:`gpu::VideoReader_GPU` . :: Video codecs supported by :ocv:class:`gpu::VideoReader_GPU` .
enum Codec .. ocv:enum:: gpu::VideoReader_GPU::Codec
{
MPEG1 = 0, .. ocv:emember:: MPEG1 = 0
MPEG2, .. ocv:emember:: MPEG2
MPEG4, .. ocv:emember:: MPEG4
VC1, .. ocv:emember:: VC1
H264, .. ocv:emember:: H264
JPEG, .. ocv:emember:: JPEG
H264_SVC, .. ocv:emember:: H264_SVC
H264_MVC, .. ocv:emember:: H264_MVC
Uncompressed_YUV420 = (('I'<<24)|('Y'<<16)|('U'<<8)|('V')), // Y,U,V (4:2:0) .. ocv:emember:: Uncompressed_YUV420 = (('I'<<24)|('Y'<<16)|('U'<<8)|('V'))
Uncompressed_YV12 = (('Y'<<24)|('V'<<16)|('1'<<8)|('2')), // Y,V,U (4:2:0)
Uncompressed_NV12 = (('N'<<24)|('V'<<16)|('1'<<8)|('2')), // Y,UV (4:2:0) Y,U,V (4:2:0)
Uncompressed_YUYV = (('Y'<<24)|('U'<<16)|('Y'<<8)|('V')), // YUYV/YUY2 (4:2:2)
Uncompressed_UYVY = (('U'<<24)|('Y'<<16)|('V'<<8)|('Y')), // UYVY (4:2:2) .. ocv:emember:: Uncompressed_YV12 = (('Y'<<24)|('V'<<16)|('1'<<8)|('2'))
};
Y,V,U (4:2:0)
.. ocv:emember:: Uncompressed_NV12 = (('N'<<24)|('V'<<16)|('1'<<8)|('2'))
Y,UV (4:2:0)
.. ocv:emember:: Uncompressed_YUYV = (('Y'<<24)|('U'<<16)|('Y'<<8)|('V'))
YUYV/YUY2 (4:2:2)
.. ocv:emember:: Uncompressed_UYVY = (('U'<<24)|('Y'<<16)|('V'<<8)|('Y'))
UYVY (4:2:2)
gpu::VideoReader_GPU::ChromaFormat gpu::VideoReader_GPU::ChromaFormat
---------------------------------- ----------------------------------
Chroma formats supported by :ocv:class:`gpu::VideoReader_GPU` . :: Chroma formats supported by :ocv:class:`gpu::VideoReader_GPU` .
enum ChromaFormat .. ocv:enum:: gpu::VideoReader_GPU::ChromaFormat
{
Monochrome=0,
YUV420,
YUV422,
YUV444,
};
.. ocv:emember:: Monochrome = 0
.. ocv:emember:: YUV420
.. ocv:emember:: YUV422
.. ocv:emember:: YUV444
gpu::VideoReader_GPU::FormatInfo gpu::VideoReader_GPU::FormatInfo
...@@ -1037,7 +1047,6 @@ Struct providing information about video file format. :: ...@@ -1037,7 +1047,6 @@ Struct providing information about video file format. ::
}; };
gpu::VideoReader_GPU::VideoReader_GPU gpu::VideoReader_GPU::VideoReader_GPU
------------------------------------- -------------------------------------
Constructors. Constructors.
......
...@@ -169,11 +169,11 @@ CvBoost::predict ...@@ -169,11 +169,11 @@ CvBoost::predict
---------------- ----------------
Predicts a response for an input sample. Predicts a response for an input sample.
.. ocv:function:: float CvBoost::predict( const Mat& sample, const Mat& missing=Mat(), const Range& slice=Range::all(), bool raw_mode=false, bool return_sum=false ) const .. ocv:function:: float CvBoost::predict( const cv::Mat& sample, const cv::Mat& missing=Mat(), const cv::Range& slice=Range::all(), bool rawMode=false, bool returnSum=false ) const
.. ocv:function:: float CvBoost::predict( const CvMat* sample, const CvMat* missing=0, CvMat* weak_responses=0, CvSlice slice=CV_WHOLE_SEQ, bool raw_mode=false, bool return_sum=false ) const .. ocv:function:: float CvBoost::predict( const CvMat* sample, const CvMat* missing=0, CvMat* weak_responses=0, CvSlice slice=CV_WHOLE_SEQ, bool raw_mode=false, bool return_sum=false ) const
.. ocv:pyfunction:: cv2.Boost.predict(sample[, missing[, slice[, raw_mode[, return_sum]]]]) -> retval .. ocv:pyfunction:: cv2.Boost.predict(sample[, missing[, slice[, rawMode[, returnSum]]]]) -> retval
:param sample: Input sample. :param sample: Input sample.
...@@ -183,9 +183,9 @@ Predicts a response for an input sample. ...@@ -183,9 +183,9 @@ Predicts a response for an input sample.
:param slice: Continuous subset of the sequence of weak classifiers to be used for prediction. By default, all the weak classifiers are used. :param slice: Continuous subset of the sequence of weak classifiers to be used for prediction. By default, all the weak classifiers are used.
:param raw_mode: Normally, it should be set to ``false``. :param rawMode: Normally, it should be set to ``false``.
:param return_sum: If ``true`` then return sum of votes instead of the class label. :param returnSum: If ``true`` then return sum of votes instead of the class label.
The method runs the sample through the trees in the ensemble and returns the output class label based on the weighted voting. The method runs the sample through the trees in the ensemble and returns the output class label based on the weighted voting.
......
...@@ -221,15 +221,13 @@ Implementation of the camera parameters refinement algorithm which minimizes sum ...@@ -221,15 +221,13 @@ Implementation of the camera parameters refinement algorithm which minimizes sum
detail::WaveCorrectKind detail::WaveCorrectKind
----------------------- -----------------------
.. ocv:class:: detail::WaveCorrectKind Wave correction kind.
Wave correction kind. :: .. ocv:enum:: detail::WaveCorrectKind
.. ocv:emember:: WAVE_CORRECT_HORIZ
.. ocv:emember:: WAVE_CORRECT_VERT
enum CV_EXPORTS WaveCorrectKind
{
WAVE_CORRECT_HORIZ,
WAVE_CORRECT_VERT
};
detail::waveCorrect detail::waveCorrect
------------------- -------------------
...@@ -239,4 +237,4 @@ Tries to make panorama more horizontal (or vertical). ...@@ -239,4 +237,4 @@ Tries to make panorama more horizontal (or vertical).
:param rmats: Camera rotation matrices. :param rmats: Camera rotation matrices.
:param kind: Correction kind, see :ocv:class:`detail::WaveCorrectKind`. :param kind: Correction kind, see :ocv:enum:`detail::WaveCorrectKind`.
...@@ -650,9 +650,9 @@ createOptFlow_DualTVL1 ...@@ -650,9 +650,9 @@ createOptFlow_DualTVL1
.. ocv:function:: Ptr<DenseOpticalFlow> createOptFlow_DualTVL1() .. ocv:function:: Ptr<DenseOpticalFlow> createOptFlow_DualTVL1()
The class implements the "Dual TV L1" optical flow algorithm described in [Zach2007]_ and [Javier2012]_ . The class implements the "Dual TV L1" optical flow algorithm described in [Zach2007]_ and [Javier2012]_ .
Here are important members of the class that control the algorithm, which you can set after constructing the class instance: Here are important members of the class that control the algorithm, which you can set after constructing the class instance:
.. ocv:member:: double tau .. ocv:member:: double tau
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment