Doxygen documentation: BiB references and fixes

This commit is contained in:
Maksim Shabunin 2014-11-26 14:21:08 +03:00
parent 1523fdcc1c
commit 03e213ccae
24 changed files with 875 additions and 463 deletions

View File

@ -166,20 +166,27 @@ if(BUILD_DOCS AND HAVE_DOXYGEN)
set(paths_include) set(paths_include)
set(paths_doc) set(paths_doc)
set(paths_bib) set(paths_bib)
set(deps)
foreach(m ${BASE_MODULES} ${EXTRA_MODULES}) foreach(m ${BASE_MODULES} ${EXTRA_MODULES})
list(FIND blacklist ${m} _pos) list(FIND blacklist ${m} _pos)
if(${_pos} EQUAL -1) if(${_pos} EQUAL -1)
# include folder
set(header_dir "${OPENCV_MODULE_opencv_${m}_LOCATION}/include") set(header_dir "${OPENCV_MODULE_opencv_${m}_LOCATION}/include")
if(EXISTS "${header_dir}") if(EXISTS "${header_dir}")
list(APPEND paths_include "${header_dir}") list(APPEND paths_include "${header_dir}")
list(APPEND deps ${header_dir})
endif() endif()
# doc folder
set(docs_dir "${OPENCV_MODULE_opencv_${m}_LOCATION}/doc") set(docs_dir "${OPENCV_MODULE_opencv_${m}_LOCATION}/doc")
if(EXISTS "${docs_dir}") if(EXISTS "${docs_dir}")
list(APPEND paths_doc "${docs_dir}") list(APPEND paths_doc "${docs_dir}")
file(GLOB bib_file "${docs_dir}" "*.bib") list(APPEND deps ${docs_dir})
if(EXISTS "${bib_file}") endif()
list(APPEND paths_bib "${bib_file}") # BiBTeX file
endif() set(bib_file "${docs_dir}/${m}.bib")
if(EXISTS "${bib_file}")
set(paths_bib "${paths_bib} ${bib_file}")
list(APPEND deps ${bib_file})
endif() endif()
endif() endif()
endforeach() endforeach()
@ -204,10 +211,11 @@ if(BUILD_DOCS AND HAVE_DOXYGEN)
configure_file(Doxyfile.in ${doxyfile} @ONLY) configure_file(Doxyfile.in ${doxyfile} @ONLY)
configure_file(root.markdown.in ${rootfile} @ONLY) configure_file(root.markdown.in ${rootfile} @ONLY)
configure_file(mymath.sty "${CMAKE_DOXYGEN_OUTPUT_PATH}/html/mymath.sty" @ONLY) configure_file(mymath.sty "${CMAKE_DOXYGEN_OUTPUT_PATH}/html/mymath.sty" @ONLY)
configure_file(mymath.sty "${CMAKE_DOXYGEN_OUTPUT_PATH}/latex/mymath.sty" @ONLY)
add_custom_target(doxygen add_custom_target(doxygen
COMMAND ${DOXYGEN_BUILD} ${doxyfile} COMMAND ${DOXYGEN_BUILD} ${doxyfile}
DEPENDS ${doxyfile} ${all_headers} ${all_images}) DEPENDS ${doxyfile} ${rootfile} ${bibfile} ${deps})
endif() endif()
if(HAVE_DOC_GENERATOR) if(HAVE_DOC_GENERATOR)

View File

@ -0,0 +1,2 @@
# doxygen citelist build workaround
citelist : .*Unexpected new line character.*

File diff suppressed because it is too large Load Diff

View File

@ -343,7 +343,7 @@ and a rotation matrix.
It optionally returns three rotation matrices, one for each axis, and the three Euler angles in It optionally returns three rotation matrices, one for each axis, and the three Euler angles in
degrees (as the return value) that could be used in OpenGL. Note, there is always more than one degrees (as the return value) that could be used in OpenGL. Note, there is always more than one
sequence of rotations about the three principle axes that results in the same orientation of an sequence of rotations about the three principle axes that results in the same orientation of an
object, eg. see @cite Slabaugh. Returned tree rotation matrices and corresponding three Euler angules object, eg. see @cite Slabaugh . Returned tree rotation matrices and corresponding three Euler angules
are only one of the possible solutions. are only one of the possible solutions.
*/ */
CV_EXPORTS_W Vec3d RQDecomp3x3( InputArray src, OutputArray mtxR, OutputArray mtxQ, CV_EXPORTS_W Vec3d RQDecomp3x3( InputArray src, OutputArray mtxR, OutputArray mtxQ,
@ -368,7 +368,7 @@ matrix and the position of a camera.
It optionally returns three rotation matrices, one for each axis, and three Euler angles that could It optionally returns three rotation matrices, one for each axis, and three Euler angles that could
be used in OpenGL. Note, there is always more than one sequence of rotations about the three be used in OpenGL. Note, there is always more than one sequence of rotations about the three
principle axes that results in the same orientation of an object, eg. see @cite Slabaugh. Returned principle axes that results in the same orientation of an object, eg. see @cite Slabaugh . Returned
tree rotation matrices and corresponding three Euler angules are only one of the possible solutions. tree rotation matrices and corresponding three Euler angules are only one of the possible solutions.
The function is based on RQDecomp3x3 . The function is based on RQDecomp3x3 .
@ -745,7 +745,7 @@ supplied distCoeffs matrix is used. Otherwise, it is set to 0.
@param criteria Termination criteria for the iterative optimization algorithm. @param criteria Termination criteria for the iterative optimization algorithm.
The function estimates the intrinsic camera parameters and extrinsic parameters for each of the The function estimates the intrinsic camera parameters and extrinsic parameters for each of the
views. The algorithm is based on @cite Zhang2000 and @cite BouguetMCT. The coordinates of 3D object views. The algorithm is based on @cite Zhang2000 and @cite BouguetMCT . The coordinates of 3D object
points and their corresponding 2D projections in each view must be specified. That may be achieved points and their corresponding 2D projections in each view must be specified. That may be achieved
by using an object with a known geometry and easily detectable feature points. Such an object is by using an object with a known geometry and easily detectable feature points. Such an object is
called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as
@ -1014,7 +1014,7 @@ The function computes the rectification transformations without knowing intrinsi
cameras and their relative position in the space, which explains the suffix "uncalibrated". Another cameras and their relative position in the space, which explains the suffix "uncalibrated". Another
related difference from stereoRectify is that the function outputs not the rectification related difference from stereoRectify is that the function outputs not the rectification
transformations in the object (3D) space, but the planar perspective transformations encoded by the transformations in the object (3D) space, but the planar perspective transformations encoded by the
homography matrices H1 and H2 . The function implements the algorithm @cite Hartley99. homography matrices H1 and H2 . The function implements the algorithm @cite Hartley99 .
@note @note
While the algorithm does not need to know the intrinsic parameters of the cameras, it heavily While the algorithm does not need to know the intrinsic parameters of the cameras, it heavily
@ -1185,7 +1185,7 @@ confidence (probability) that the estimated matrix is correct.
@param mask Output array of N elements, every element of which is set to 0 for outliers and to 1 @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1
for the other points. The array is computed only in the RANSAC and LMedS methods. for the other points. The array is computed only in the RANSAC and LMedS methods.
This function estimates essential matrix based on the five-point algorithm solver in @cite Nister03. This function estimates essential matrix based on the five-point algorithm solver in @cite Nister03 .
@cite SteweniusCFS is also a related. The epipolar geometry is described by the following equation: @cite SteweniusCFS is also a related. The epipolar geometry is described by the following equation:
\f[[p_2; 1]^T K^T E K [p_1; 1] = 0 \\\f]\f[K = \f[[p_2; 1]^T K^T E K [p_1; 1] = 0 \\\f]\f[K =
@ -1211,7 +1211,7 @@ CV_EXPORTS_W Mat findEssentialMat( InputArray points1, InputArray points2,
@param R2 Another possible rotation matrix. @param R2 Another possible rotation matrix.
@param t One possible translation. @param t One possible translation.
This function decompose an essential matrix E using svd decomposition @cite HartleyZ00. Generally 4 This function decompose an essential matrix E using svd decomposition @cite HartleyZ00 . Generally 4
possible poses exists for a given E. They are \f$[R_1, t]\f$, \f$[R_1, -t]\f$, \f$[R_2, t]\f$, \f$[R_2, -t]\f$. By possible poses exists for a given E. They are \f$[R_1, t]\f$, \f$[R_1, -t]\f$, \f$[R_2, t]\f$, \f$[R_2, -t]\f$. By
decomposing E, you can only get the direction of the translation, so the function returns unit t. decomposing E, you can only get the direction of the translation, so the function returns unit t.
*/ */
@ -1236,7 +1236,7 @@ matrix E. Only these inliers will be used to recover pose. In the output mask on
which pass the cheirality check. which pass the cheirality check.
This function decomposes an essential matrix using decomposeEssentialMat and then verifies possible This function decomposes an essential matrix using decomposeEssentialMat and then verifies possible
pose hypotheses by doing cheirality check. The cheirality check basically means that the pose hypotheses by doing cheirality check. The cheirality check basically means that the
triangulated 3D points should have positive depth. Some details can be found in @cite Nister03. triangulated 3D points should have positive depth. Some details can be found in @cite Nister03 .
This function can be used to process output E and mask from findEssentialMat. In this scenario, This function can be used to process output E and mask from findEssentialMat. In this scenario,
points1 and points2 are the same input for findEssentialMat. : points1 and points2 are the same input for findEssentialMat. :
@ -1421,7 +1421,7 @@ This function extracts relative camera motion between two views observing a plan
homography H induced by the plane. The intrinsic camera matrix K must also be provided. The function homography H induced by the plane. The intrinsic camera matrix K must also be provided. The function
may return up to four mathematical solution sets. At least two of the solutions may further be may return up to four mathematical solution sets. At least two of the solutions may further be
invalidated if point correspondences are available by applying positive depth constraint (all points invalidated if point correspondences are available by applying positive depth constraint (all points
must be in front of the camera). The decomposition method is described in detail in @cite Malis. must be in front of the camera). The decomposition method is described in detail in @cite Malis .
*/ */
CV_EXPORTS_W int decomposeHomographyMat(InputArray H, CV_EXPORTS_W int decomposeHomographyMat(InputArray H,
InputArray K, InputArray K,
@ -1605,6 +1605,7 @@ public:
int mode = StereoSGBM::MODE_SGBM); int mode = StereoSGBM::MODE_SGBM);
}; };
//! @} calib3d
/** @brief The methods in this namespace use a so-called fisheye camera model. /** @brief The methods in this namespace use a so-called fisheye camera model.
@ingroup calib3d_fisheye @ingroup calib3d_fisheye
@ -1851,8 +1852,6 @@ namespace fisheye
//! @} calib3d_fisheye //! @} calib3d_fisheye
} }
//! @} calib3d
} // cv } // cv
#endif #endif

View File

@ -75,6 +75,9 @@
@defgroup core_opengl OpenGL interoperability @defgroup core_opengl OpenGL interoperability
@defgroup core_ipp Intel IPP Asynchronous C/C++ Converters @defgroup core_ipp Intel IPP Asynchronous C/C++ Converters
@defgroup core_optim Optimization Algorithms @defgroup core_optim Optimization Algorithms
@defgroup core_directx DirectX interoperability
@defgroup core_eigen Eigen support
@defgroup core_opencl OpenCL support
@} @}
*/ */

View File

@ -69,7 +69,7 @@ namespace cv { namespace cuda {
The class discriminates between foreground and background pixels by building and maintaining a model The class discriminates between foreground and background pixels by building and maintaining a model
of the background. Any pixel which does not fit this model is then deemed to be foreground. The of the background. Any pixel which does not fit this model is then deemed to be foreground. The
class implements algorithm described in @cite MOG2001. class implements algorithm described in @cite MOG2001 .
@sa BackgroundSubtractorMOG @sa BackgroundSubtractorMOG
@ -119,7 +119,7 @@ CV_EXPORTS Ptr<cuda::BackgroundSubtractorMOG>
The class discriminates between foreground and background pixels by building and maintaining a model The class discriminates between foreground and background pixels by building and maintaining a model
of the background. Any pixel which does not fit this model is then deemed to be foreground. The of the background. Any pixel which does not fit this model is then deemed to be foreground. The
class implements algorithm described in @cite MOG2004. class implements algorithm described in @cite Zivkovic2004 .
@sa BackgroundSubtractorMOG2 @sa BackgroundSubtractorMOG2
*/ */
@ -154,7 +154,7 @@ CV_EXPORTS Ptr<cuda::BackgroundSubtractorMOG2>
The class discriminates between foreground and background pixels by building and maintaining a model The class discriminates between foreground and background pixels by building and maintaining a model
of the background. Any pixel which does not fit this model is then deemed to be foreground. The of the background. Any pixel which does not fit this model is then deemed to be foreground. The
class implements algorithm described in @cite GMG2012. class implements algorithm described in @cite Gold2012 .
*/ */
class CV_EXPORTS BackgroundSubtractorGMG : public cv::BackgroundSubtractor class CV_EXPORTS BackgroundSubtractorGMG : public cv::BackgroundSubtractor
{ {
@ -208,7 +208,7 @@ CV_EXPORTS Ptr<cuda::BackgroundSubtractorGMG>
of the background. of the background.
Any pixel which does not fit this model is then deemed to be foreground. The class implements Any pixel which does not fit this model is then deemed to be foreground. The class implements
algorithm described in @cite FGD2003. algorithm described in @cite FGD2003 .
@sa BackgroundSubtractor @sa BackgroundSubtractor
*/ */
class CV_EXPORTS BackgroundSubtractorFGD : public cv::BackgroundSubtractor class CV_EXPORTS BackgroundSubtractorFGD : public cv::BackgroundSubtractor

View File

@ -205,6 +205,7 @@ struct NcvPoint2D32u
__host__ __device__ NcvPoint2D32u(Ncv32u x_, Ncv32u y_) : x(x_), y(y_) {} __host__ __device__ NcvPoint2D32u(Ncv32u x_, Ncv32u y_) : x(x_), y(y_) {}
}; };
//! @cond IGNORED
NCV_CT_ASSERT(sizeof(NcvBool) <= 4); NCV_CT_ASSERT(sizeof(NcvBool) <= 4);
NCV_CT_ASSERT(sizeof(Ncv64s) == 8); NCV_CT_ASSERT(sizeof(Ncv64s) == 8);
@ -223,6 +224,7 @@ NCV_CT_ASSERT(sizeof(NcvRect32u) == 4 * sizeof(Ncv32u));
NCV_CT_ASSERT(sizeof(NcvSize32u) == 2 * sizeof(Ncv32u)); NCV_CT_ASSERT(sizeof(NcvSize32u) == 2 * sizeof(Ncv32u));
NCV_CT_ASSERT(sizeof(NcvPoint2D32u) == 2 * sizeof(Ncv32u)); NCV_CT_ASSERT(sizeof(NcvPoint2D32u) == 2 * sizeof(Ncv32u));
//! @endcond
//============================================================================== //==============================================================================
// //

View File

@ -114,7 +114,7 @@ StereoBeliefPropagation uses a truncated linear model for the data cost and disc
\f[DiscTerm = \min (disc \_ single \_ jump \cdot \lvert f_1-f_2 \rvert , max \_ disc \_ term)\f] \f[DiscTerm = \min (disc \_ single \_ jump \cdot \lvert f_1-f_2 \rvert , max \_ disc \_ term)\f]
For more details, see @cite Felzenszwalb2006. For more details, see @cite Felzenszwalb2006 .
By default, StereoBeliefPropagation uses floating-point arithmetics and the CV_32FC1 type for By default, StereoBeliefPropagation uses floating-point arithmetics and the CV_32FC1 type for
messages. But it can also use fixed-point arithmetics and the CV_16SC1 message type for better messages. But it can also use fixed-point arithmetics and the CV_16SC1 message type for better
@ -192,7 +192,7 @@ CV_EXPORTS Ptr<cuda::StereoBeliefPropagation>
/** @brief Class computing stereo correspondence using the constant space belief propagation algorithm. : /** @brief Class computing stereo correspondence using the constant space belief propagation algorithm. :
The class implements algorithm described in @cite Yang2010. StereoConstantSpaceBP supports both local The class implements algorithm described in @cite Yang2010 . StereoConstantSpaceBP supports both local
minimum and global minimum data cost initialization algorithms. For more details, see the paper minimum and global minimum data cost initialization algorithms. For more details, see the paper
mentioned above. By default, a local algorithm is used. To enable a global algorithm, set mentioned above. By default, a local algorithm is used. To enable a global algorithm, set
use_local_init_data_cost to false . use_local_init_data_cost to false .
@ -203,7 +203,7 @@ StereoConstantSpaceBP uses a truncated linear model for the data cost and discon
\f[DiscTerm = \min (disc \_ single \_ jump \cdot \lvert f_1-f_2 \rvert , max \_ disc \_ term)\f] \f[DiscTerm = \min (disc \_ single \_ jump \cdot \lvert f_1-f_2 \rvert , max \_ disc \_ term)\f]
For more details, see @cite Yang2010. For more details, see @cite Yang2010 .
By default, StereoConstantSpaceBP uses floating-point arithmetics and the CV_32FC1 type for By default, StereoConstantSpaceBP uses floating-point arithmetics and the CV_32FC1 type for
messages. But it can also use fixed-point arithmetics and the CV_16SC1 message type for better messages. But it can also use fixed-point arithmetics and the CV_16SC1 message type for better

View File

@ -215,7 +215,7 @@ typedef Feature2D DescriptorExtractor;
//! @addtogroup features2d_main //! @addtogroup features2d_main
//! @{ //! @{
/** @brief Class implementing the BRISK keypoint detector and descriptor extractor, described in @cite LCS11. /** @brief Class implementing the BRISK keypoint detector and descriptor extractor, described in @cite LCS11 .
*/ */
class CV_EXPORTS_W BRISK : public Feature2D class CV_EXPORTS_W BRISK : public Feature2D
{ {
@ -246,7 +246,7 @@ public:
/** @brief Class implementing the ORB (*oriented BRIEF*) keypoint detector and descriptor extractor /** @brief Class implementing the ORB (*oriented BRIEF*) keypoint detector and descriptor extractor
described in @cite RRKB11. The algorithm uses FAST in pyramids to detect stable keypoints, selects described in @cite RRKB11 . The algorithm uses FAST in pyramids to detect stable keypoints, selects
the strongest features using FAST or Harris response, finds their orientation using first-order the strongest features using FAST or Harris response, finds their orientation using first-order
moments and computes the descriptors using BRIEF (where the coordinates of random point pairs (or moments and computes the descriptors using BRIEF (where the coordinates of random point pairs (or
k-tuples) are rotated according to the measured orientation). k-tuples) are rotated according to the measured orientation).
@ -369,7 +369,7 @@ circle around this pixel.
FastFeatureDetector::TYPE_9_16, FastFeatureDetector::TYPE_7_12, FastFeatureDetector::TYPE_9_16, FastFeatureDetector::TYPE_7_12,
FastFeatureDetector::TYPE_5_8 FastFeatureDetector::TYPE_5_8
Detects corners using the FAST algorithm by @cite Rosten06. Detects corners using the FAST algorithm by @cite Rosten06 .
@note In Python API, types are given as cv2.FAST_FEATURE_DETECTOR_TYPE_5_8, @note In Python API, types are given as cv2.FAST_FEATURE_DETECTOR_TYPE_5_8,
cv2.FAST_FEATURE_DETECTOR_TYPE_7_12 and cv2.FAST_FEATURE_DETECTOR_TYPE_9_16. For corner cv2.FAST_FEATURE_DETECTOR_TYPE_7_12 and cv2.FAST_FEATURE_DETECTOR_TYPE_9_16. For corner
@ -505,7 +505,7 @@ public:
//! @addtogroup features2d_main //! @addtogroup features2d_main
//! @{ //! @{
/** @brief Class implementing the KAZE keypoint detector and descriptor extractor, described in @cite ABD12. /** @brief Class implementing the KAZE keypoint detector and descriptor extractor, described in @cite ABD12 .
@note AKAZE descriptor can only be used with KAZE or AKAZE keypoints .. [ABD12] KAZE Features. Pablo @note AKAZE descriptor can only be used with KAZE or AKAZE keypoints .. [ABD12] KAZE Features. Pablo
F. Alcantarilla, Adrien Bartoli and Andrew J. Davison. In European Conference on Computer Vision F. Alcantarilla, Adrien Bartoli and Andrew J. Davison. In European Conference on Computer Vision
@ -556,7 +556,7 @@ public:
CV_WRAP virtual int getDiffusivity() const = 0; CV_WRAP virtual int getDiffusivity() const = 0;
}; };
/** @brief Class implementing the AKAZE keypoint detector and descriptor extractor, described in @cite ANB13. : /** @brief Class implementing the AKAZE keypoint detector and descriptor extractor, described in @cite ANB13 . :
@note AKAZE descriptors can only be used with KAZE or AKAZE keypoints. Try to avoid using *extract* @note AKAZE descriptors can only be used with KAZE or AKAZE keypoints. Try to avoid using *extract*
and *detect* instead of *operator()* due to performance reasons. .. [ANB13] Fast Explicit Diffusion and *detect* instead of *operator()* due to performance reasons. .. [ANB13] Fast Explicit Diffusion

View File

@ -969,7 +969,7 @@ An example using the LineSegmentDetector
/** @brief Line segment detector class /** @brief Line segment detector class
following the algorithm described at @cite Rafael12. following the algorithm described at @cite Rafael12 .
*/ */
class CV_EXPORTS_W LineSegmentDetector : public Algorithm class CV_EXPORTS_W LineSegmentDetector : public Algorithm
{ {
@ -1418,7 +1418,7 @@ CV_EXPORTS_W void Laplacian( InputArray src, OutputArray dst, int ddepth,
An example on using the canny edge detector An example on using the canny edge detector
*/ */
/** @brief Finds edges in an image using the Canny algorithm @cite Canny86. /** @brief Finds edges in an image using the Canny algorithm @cite Canny86 .
The function finds edges in the input image image and marks them in the output map edges using the The function finds edges in the input image image and marks them in the output map edges using the
Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The
@ -2940,7 +2940,7 @@ An example using the watershed algorithm
/** @brief Performs a marker-based image segmentation using the watershed algorithm. /** @brief Performs a marker-based image segmentation using the watershed algorithm.
The function implements one of the variants of watershed, non-parametric marker-based segmentation The function implements one of the variants of watershed, non-parametric marker-based segmentation
algorithm, described in @cite Meyer92. algorithm, described in @cite Meyer92 .
Before passing the image to the function, you have to roughly outline the desired regions in the Before passing the image to the function, you have to roughly outline the desired regions in the
image markers with positive (\>0) indices. So, every region is represented as one or more connected image markers with positive (\>0) indices. So, every region is represented as one or more connected
@ -3050,7 +3050,7 @@ The functions distanceTransform calculate the approximate or precise distance fr
image pixel to the nearest zero pixel. For zero image pixels, the distance will obviously be zero. image pixel to the nearest zero pixel. For zero image pixels, the distance will obviously be zero.
When maskSize == DIST_MASK_PRECISE and distanceType == DIST_L2 , the function runs the When maskSize == DIST_MASK_PRECISE and distanceType == DIST_L2 , the function runs the
algorithm described in @cite Felzenszwalb04. This algorithm is parallelized with the TBB library. algorithm described in @cite Felzenszwalb04 . This algorithm is parallelized with the TBB library.
In other cases, the algorithm @cite Borgefors86 is used. This means that for a pixel the function In other cases, the algorithm @cite Borgefors86 is used. This means that for a pixel the function
finds the shortest path to the nearest zero pixel consisting of basic shifts: horizontal, vertical, finds the shortest path to the nearest zero pixel consisting of basic shifts: horizontal, vertical,
@ -3371,7 +3371,7 @@ CV_EXPORTS_W int connectedComponentsWithStats(InputArray image, OutputArray labe
/** @brief Finds contours in a binary image. /** @brief Finds contours in a binary image.
The function retrieves contours from the binary image using the algorithm @cite Suzuki85. The contours The function retrieves contours from the binary image using the algorithm @cite Suzuki85 . The contours
are a useful tool for shape analysis and object detection and recognition. See squares.c in the are a useful tool for shape analysis and object detection and recognition. See squares.c in the
OpenCV sample directory. OpenCV sample directory.

View File

@ -87,7 +87,7 @@ nearest feature vectors from both classes (in case of 2-class classifier) is max
vectors that are the closest to the hyper-plane are called *support vectors*, which means that the vectors that are the closest to the hyper-plane are called *support vectors*, which means that the
position of other vectors does not affect the hyper-plane (the decision function). position of other vectors does not affect the hyper-plane (the decision function).
SVM implementation in OpenCV is based on @cite LibSVM. SVM implementation in OpenCV is based on @cite LibSVM .
Prediction with SVM Prediction with SVM
------------------- -------------------
@ -98,7 +98,7 @@ the raw response from SVM (in the case of regression, 1-class or 2-class classif
@defgroup ml_decsiontrees Decision Trees @defgroup ml_decsiontrees Decision Trees
The ML classes discussed in this section implement Classification and Regression Tree algorithms The ML classes discussed in this section implement Classification and Regression Tree algorithms
described in @cite Breiman84. described in @cite Breiman84 .
The class cv::ml::DTrees represents a single decision tree or a collection of decision trees. It's The class cv::ml::DTrees represents a single decision tree or a collection of decision trees. It's
also a base class for RTrees and Boost. also a base class for RTrees and Boost.
@ -184,7 +184,7 @@ qualitative output is called *classification*, while predicting the quantitative
Boosting is a powerful learning concept that provides a solution to the supervised classification Boosting is a powerful learning concept that provides a solution to the supervised classification
learning task. It combines the performance of many "weak" classifiers to produce a powerful learning task. It combines the performance of many "weak" classifiers to produce a powerful
committee @cite HTF01. A weak classifier is only required to be better than chance, and thus can be committee @cite HTF01 . A weak classifier is only required to be better than chance, and thus can be
very simple and computationally inexpensive. However, many of them smartly combine results to a very simple and computationally inexpensive. However, many of them smartly combine results to a
strong classifier that often outperforms most "monolithic" strong classifiers such as SVMs and strong classifier that often outperforms most "monolithic" strong classifiers such as SVMs and
Neural Networks. Neural Networks.
@ -197,7 +197,7 @@ The boosted model is based on \f$N\f$ training examples \f${(x_i,y_i)}1N\f$ with
the learning task at hand. The desired two-class output is encoded as -1 and +1. the learning task at hand. The desired two-class output is encoded as -1 and +1.
Different variants of boosting are known as Discrete Adaboost, Real AdaBoost, LogitBoost, and Gentle Different variants of boosting are known as Discrete Adaboost, Real AdaBoost, LogitBoost, and Gentle
AdaBoost @cite FHT98. All of them are very similar in their overall structure. Therefore, this chapter AdaBoost @cite FHT98 . All of them are very similar in their overall structure. Therefore, this chapter
focuses only on the standard two-class Discrete AdaBoost algorithm, outlined below. Initially the focuses only on the standard two-class Discrete AdaBoost algorithm, outlined below. Initially the
same weight is assigned to each sample (step 2). Then, a weak classifier \f$f_{m(x)}\f$ is trained on same weight is assigned to each sample (step 2). Then, a weak classifier \f$f_{m(x)}\f$ is trained on
the weighted training data (step 3a). Its weighted training error and scaling factor \f$c_m\f$ is the weighted training data (step 3a). Its weighted training error and scaling factor \f$c_m\f$ is
@ -236,7 +236,7 @@ induced classifier. This process is controlled with the weight_trim_rate paramet
with the summary fraction weight_trim_rate of the total weight mass are used in the weak with the summary fraction weight_trim_rate of the total weight mass are used in the weak
classifier training. Note that the weights for **all** training examples are recomputed at each classifier training. Note that the weights for **all** training examples are recomputed at each
training iteration. Examples deleted at a particular iteration may be used again for learning some training iteration. Examples deleted at a particular iteration may be used again for learning some
of the weak classifiers further @cite FHT98. of the weak classifiers further @cite FHT98 .
Prediction with Boost Prediction with Boost
--------------------- ---------------------
@ -425,8 +425,8 @@ Regression is a binary classification algorithm which is closely related to Supp
like digit recognition (i.e. recognizing digitis like 0,1 2, 3,... from the given images). This like digit recognition (i.e. recognizing digitis like 0,1 2, 3,... from the given images). This
version of Logistic Regression supports both binary and multi-class classifications (for multi-class version of Logistic Regression supports both binary and multi-class classifications (for multi-class
it creates a multiple 2-class classifiers). In order to train the logistic regression classifier, it creates a multiple 2-class classifiers). In order to train the logistic regression classifier,
Batch Gradient Descent and Mini-Batch Gradient Descent algorithms are used (see @cite BatchDesWiki). Batch Gradient Descent and Mini-Batch Gradient Descent algorithms are used (see <http://en.wikipedia.org/wiki/Gradient_descent_optimization>).
Logistic Regression is a discriminative classifier (see @cite LogRegTomMitch for more details). Logistic Regression is a discriminative classifier (see <http://www.cs.cmu.edu/~tom/NewChapters.html> for more details).
Logistic Regression is implemented as a C++ class in LogisticRegression. Logistic Regression is implemented as a C++ class in LogisticRegression.
In Logistic Regression, we try to optimize the training paramater \f$\theta\f$ such that the hypothesis In Logistic Regression, we try to optimize the training paramater \f$\theta\f$ such that the hypothesis

View File

@ -53,7 +53,7 @@ Haar Feature-based Cascade Classifier for Object Detection
---------------------------------------------------------- ----------------------------------------------------------
The object detector described below has been initially proposed by Paul Viola @cite Viola01 and The object detector described below has been initially proposed by Paul Viola @cite Viola01 and
improved by Rainer Lienhart @cite Lienhart02. improved by Rainer Lienhart @cite Lienhart02 .
First, a classifier (namely a *cascade of boosted classifiers working with haar-like features*) is First, a classifier (namely a *cascade of boosted classifiers working with haar-like features*) is
trained with a few hundred sample views of a particular object (i.e., a face or a car), called trained with a few hundred sample views of a particular object (i.e., a face or a car), called

View File

@ -97,7 +97,7 @@ needs to be inpainted.
by the algorithm. by the algorithm.
@param flags Inpainting method that could be one of the following: @param flags Inpainting method that could be one of the following:
- **INPAINT_NS** Navier-Stokes based method [Navier01] - **INPAINT_NS** Navier-Stokes based method [Navier01]
- **INPAINT_TELEA** Method by Alexandru Telea @cite Telea04. - **INPAINT_TELEA** Method by Alexandru Telea @cite Telea04 .
The function reconstructs the selected image area from the pixel near the area boundary. The The function reconstructs the selected image area from the pixel near the area boundary. The
function may be used to remove dust and scratches from a scanned photo, or to remove undesirable function may be used to remove dust and scratches from a scanned photo, or to remove undesirable
@ -220,12 +220,12 @@ as the variational problem, primal-dual algorithm then can be used to perform de
exactly what is implemented. exactly what is implemented.
It should be noted, that this implementation was taken from the July 2013 blog entry It should be noted, that this implementation was taken from the July 2013 blog entry
@cite Mordvintsev, which also contained (slightly more general) ready-to-use source code on Python. @cite MA13 , which also contained (slightly more general) ready-to-use source code on Python.
Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end
of July 2013 and finally it was slightly adapted by later authors. of July 2013 and finally it was slightly adapted by later authors.
Although the thorough discussion and justification of the algorithm involved may be found in Although the thorough discussion and justification of the algorithm involved may be found in
@cite ChambolleEtAl, it might make sense to skim over it here, following @cite Mordvintsev. To begin @cite ChambolleEtAl, it might make sense to skim over it here, following @cite MA13 . To begin
with, we consider the 1-byte gray-level images as the functions from the rectangular domain of with, we consider the 1-byte gray-level images as the functions from the rectangular domain of
pixels (it may be seen as set pixels (it may be seen as set
\f$\left\{(x,y)\in\mathbb{N}\times\mathbb{N}\mid 1\leq x\leq n,\;1\leq y\leq m\right\}\f$ for some \f$\left\{(x,y)\in\mathbb{N}\times\mathbb{N}\mid 1\leq x\leq n,\;1\leq y\leq m\right\}\f$ for some
@ -290,9 +290,9 @@ logarithmic domain.
Since it's a global operator the same function is applied to all the pixels, it is controlled by the Since it's a global operator the same function is applied to all the pixels, it is controlled by the
bias parameter. bias parameter.
Optional saturation enhancement is possible as described in @cite FL02. Optional saturation enhancement is possible as described in @cite FL02 .
For more information see @cite DM03. For more information see @cite DM03 .
*/ */
class CV_EXPORTS_W TonemapDrago : public Tonemap class CV_EXPORTS_W TonemapDrago : public Tonemap
{ {
@ -322,7 +322,7 @@ This implementation uses regular bilateral filter from opencv.
Saturation enhancement is possible as in ocvTonemapDrago. Saturation enhancement is possible as in ocvTonemapDrago.
For more information see @cite DD02. For more information see @cite DD02 .
*/ */
class CV_EXPORTS_W TonemapDurand : public Tonemap class CV_EXPORTS_W TonemapDurand : public Tonemap
{ {
@ -358,7 +358,7 @@ createTonemapDurand(float gamma = 1.0f, float contrast = 4.0f, float saturation
Mapping function is controlled by adaptation parameter, that is computed using light adaptation and Mapping function is controlled by adaptation parameter, that is computed using light adaptation and
color adaptation. color adaptation.
For more information see @cite RD05. For more information see @cite RD05 .
*/ */
class CV_EXPORTS_W TonemapReinhard : public Tonemap class CV_EXPORTS_W TonemapReinhard : public Tonemap
{ {
@ -389,7 +389,7 @@ createTonemapReinhard(float gamma = 1.0f, float intensity = 0.0f, float light_ad
transforms contrast values to HVS response and scales the response. After this the image is transforms contrast values to HVS response and scales the response. After this the image is
reconstructed from new contrast values. reconstructed from new contrast values.
For more information see @cite MM06. For more information see @cite MM06 .
*/ */
class CV_EXPORTS_W TonemapMantiuk : public Tonemap class CV_EXPORTS_W TonemapMantiuk : public Tonemap
{ {
@ -435,7 +435,7 @@ It is invariant to exposure, so exposure values and camera response are not nece
In this implementation new image regions are filled with zeros. In this implementation new image regions are filled with zeros.
For more information see @cite GW03. For more information see @cite GW03 .
*/ */
class CV_EXPORTS_W AlignMTB : public AlignExposures class CV_EXPORTS_W AlignMTB : public AlignExposures
{ {
@ -510,7 +510,7 @@ public:
function as linear system. Objective function is constructed using pixel values on the same position function as linear system. Objective function is constructed using pixel values on the same position
in all images, extra term is added to make the result smoother. in all images, extra term is added to make the result smoother.
For more information see @cite DM97. For more information see @cite DM97 .
*/ */
class CV_EXPORTS_W CalibrateDebevec : public CalibrateCRF class CV_EXPORTS_W CalibrateDebevec : public CalibrateCRF
{ {
@ -538,7 +538,7 @@ CV_EXPORTS_W Ptr<CalibrateDebevec> createCalibrateDebevec(int samples = 70, floa
/** @brief Inverse camera response function is extracted for each brightness value by minimizing an objective /** @brief Inverse camera response function is extracted for each brightness value by minimizing an objective
function as linear system. This algorithm uses all image pixels. function as linear system. This algorithm uses all image pixels.
For more information see @cite RB99. For more information see @cite RB99 .
*/ */
class CV_EXPORTS_W CalibrateRobertson : public CalibrateCRF class CV_EXPORTS_W CalibrateRobertson : public CalibrateCRF
{ {
@ -579,7 +579,7 @@ public:
/** @brief The resulting HDR image is calculated as weighted average of the exposures considering exposure /** @brief The resulting HDR image is calculated as weighted average of the exposures considering exposure
values and camera response. values and camera response.
For more information see @cite DM97. For more information see @cite DM97 .
*/ */
class CV_EXPORTS_W MergeDebevec : public MergeExposures class CV_EXPORTS_W MergeDebevec : public MergeExposures
{ {
@ -602,7 +602,7 @@ well-exposedness measures.
The resulting image doesn't require tonemapping and can be converted to 8-bit image by multiplying The resulting image doesn't require tonemapping and can be converted to 8-bit image by multiplying
by 255, but it's recommended to apply gamma correction and/or linear tonemapping. by 255, but it's recommended to apply gamma correction and/or linear tonemapping.
For more information see @cite MK07. For more information see @cite MK07 .
*/ */
class CV_EXPORTS_W MergeMertens : public MergeExposures class CV_EXPORTS_W MergeMertens : public MergeExposures
{ {
@ -638,7 +638,7 @@ createMergeMertens(float contrast_weight = 1.0f, float saturation_weight = 1.0f,
/** @brief The resulting HDR image is calculated as weighted average of the exposures considering exposure /** @brief The resulting HDR image is calculated as weighted average of the exposures considering exposure
values and camera response. values and camera response.
For more information see @cite RB99. For more information see @cite RB99 .
*/ */
class CV_EXPORTS_W MergeRobertson : public MergeExposures class CV_EXPORTS_W MergeRobertson : public MergeExposures
{ {
@ -656,7 +656,7 @@ CV_EXPORTS_W Ptr<MergeRobertson> createMergeRobertson();
/** @brief Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized /** @brief Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized
black-and-white photograph rendering, and in many single channel image processing applications black-and-white photograph rendering, and in many single channel image processing applications
@cite CL12. @cite CL12 .
@param src Input 8-bit 3-channel image. @param src Input 8-bit 3-channel image.
@param grayscale Output 8-bit 1-channel image. @param grayscale Output 8-bit 1-channel image.
@ -673,7 +673,7 @@ CV_EXPORTS_W void decolor( InputArray src, OutputArray grayscale, OutputArray co
deformations) or local changes concerned to a selection. Here we are interested in achieving local deformations) or local changes concerned to a selection. Here we are interested in achieving local
changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless
manner. The extent of the changes ranges from slight distortions to complete replacement by novel manner. The extent of the changes ranges from slight distortions to complete replacement by novel
content @cite PM03. content @cite PM03 .
@param src Input 8-bit 3-channel image. @param src Input 8-bit 3-channel image.
@param dst Input 8-bit 3-channel image. @param dst Input 8-bit 3-channel image.
@ -749,7 +749,7 @@ CV_EXPORTS_W void textureFlattening(InputArray src, InputArray mask, OutputArray
//! @{ //! @{
/** @brief Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing /** @brief Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing
filters are used in many different applications @cite EM11. filters are used in many different applications @cite EM11 .
@param src Input 8-bit 3-channel image. @param src Input 8-bit 3-channel image.
@param dst Output 8-bit 3-channel image. @param dst Output 8-bit 3-channel image.

View File

@ -61,7 +61,7 @@ class it's possible to configure/remove some steps, i.e. adjust the stitching pi
the particular needs. All building blocks from the pipeline are available in the detail namespace, the particular needs. All building blocks from the pipeline are available in the detail namespace,
one can combine and use them separately. one can combine and use them separately.
The implemented stitching pipeline is very similar to the one proposed in @cite BL07. The implemented stitching pipeline is very similar to the one proposed in @cite BL07 .
![image](StitchingPipeline.jpg) ![image](StitchingPipeline.jpg)

View File

@ -229,7 +229,7 @@ public:
enum CostType { COST_COLOR, COST_COLOR_GRAD }; enum CostType { COST_COLOR, COST_COLOR_GRAD };
}; };
/** @brief Minimum graph cut-based seam estimator. See details in @cite V03. /** @brief Minimum graph cut-based seam estimator. See details in @cite V03 .
*/ */
class CV_EXPORTS GraphCutSeamFinder : public GraphCutSeamFinderBase, public SeamFinder class CV_EXPORTS GraphCutSeamFinder : public GraphCutSeamFinderBase, public SeamFinder
{ {

View File

@ -50,7 +50,7 @@
The Super Resolution module contains a set of functions and classes that can be used to solve the The Super Resolution module contains a set of functions and classes that can be used to solve the
problem of resolution enhancement. There are a few methods implemented, most of them are descibed in problem of resolution enhancement. There are a few methods implemented, most of them are descibed in
the papers @cite Farsiu03 and @cite Mitzel09. the papers @cite Farsiu03 and @cite Mitzel09 .
*/ */

View File

@ -65,7 +65,7 @@ enum { OPTFLOW_USE_INITIAL_FLOW = 4,
@param criteria Stop criteria for the underlying meanShift. @param criteria Stop criteria for the underlying meanShift.
returns returns
(in old interfaces) Number of iterations CAMSHIFT took to converge (in old interfaces) Number of iterations CAMSHIFT took to converge
The function implements the CAMSHIFT object tracking algorithm @cite Bradski98. First, it finds an The function implements the CAMSHIFT object tracking algorithm @cite Bradski98 . First, it finds an
object center using meanShift and then adjusts the window size and finds the optimal rotation. The object center using meanShift and then adjusts the window size and finds the optimal rotation. The
function returns the rotated rectangle structure that includes the object position, size, and function returns the rotated rectangle structure that includes the object position, size, and
orientation. The next position of the search window can be obtained with RotatedRect::boundingRect() orientation. The next position of the search window can be obtained with RotatedRect::boundingRect()
@ -159,7 +159,7 @@ feature is filtered out and its flow is not processed, so it allows to remove ba
performance boost. performance boost.
The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See
@cite Bouguet00. The function is parallelized with the TBB library. @cite Bouguet00 . The function is parallelized with the TBB library.
@note @note
@ -258,7 +258,7 @@ enum
MOTION_HOMOGRAPHY = 3 MOTION_HOMOGRAPHY = 3
}; };
/** @brief Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08. /** @brief Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 .
@param templateImage single-channel template image; CV_8U or CV_32F array. @param templateImage single-channel template image; CV_8U or CV_32F array.
@param inputImage single-channel input image which should be warped with the final warpMatrix in @param inputImage single-channel input image which should be warped with the final warpMatrix in
@ -314,7 +314,7 @@ CV_EXPORTS_W double findTransformECC( InputArray templateImage, InputArray input
/** @brief Kalman filter class. /** @brief Kalman filter class.
The class implements a standard Kalman filter <http://en.wikipedia.org/wiki/Kalman_filter>, The class implements a standard Kalman filter <http://en.wikipedia.org/wiki/Kalman_filter>,
@cite Welch95. However, you can modify transitionMatrix, controlMatrix, and measurementMatrix to get @cite Welch95 . However, you can modify transitionMatrix, controlMatrix, and measurementMatrix to get
an extended Kalman filter functionality. See the OpenCV sample kalman.cpp. an extended Kalman filter functionality. See the OpenCV sample kalman.cpp.
@note @note
@ -383,7 +383,7 @@ public:
/** @brief "Dual TV L1" Optical Flow Algorithm. /** @brief "Dual TV L1" Optical Flow Algorithm.
The class implements the "Dual TV L1" optical flow algorithm described in @cite Zach2007 and The class implements the "Dual TV L1" optical flow algorithm described in @cite Zach2007 and
@cite Javier2012. @cite Javier2012 .
Here are important members of the class that control the algorithm, which you can set after Here are important members of the class that control the algorithm, which you can set after
constructing the class instance: constructing the class instance:

View File

@ -172,4 +172,3 @@
@end @end
//! @} videoio_ios //! @} videoio_ios

View File

@ -48,7 +48,7 @@
The video stabilization module contains a set of functions and classes that can be used to solve the The video stabilization module contains a set of functions and classes that can be used to solve the
problem of video stabilization. There are a few methods implemented, most of them are descibed in problem of video stabilization. There are a few methods implemented, most of them are descibed in
the papers @cite OF06 and @cite G11. However, there are some extensions and deviations from the orginal the papers @cite OF06 and @cite G11 . However, there are some extensions and deviations from the orginal
paper methods. paper methods.
### References ### References
@ -68,7 +68,7 @@ Both the functions and the classes are available.
@defgroup videostab_marching Fast Marching Method @defgroup videostab_marching Fast Marching Method
The Fast Marching Method @cite T04 is used in of the video stabilization routines to do motion and The Fast Marching Method @cite Telea04 is used in of the video stabilization routines to do motion and
color inpainting. The method is implemented is a flexible way and it's made public for other users. color inpainting. The method is implemented is a flexible way and it's made public for other users.
@} @}

View File

@ -55,7 +55,7 @@ namespace cv
namespace videostab namespace videostab
{ {
//! @addtogroup vieostab //! @addtogroup videostab
//! @{ //! @{
class CV_EXPORTS ISparseOptFlowEstimator class CV_EXPORTS ISparseOptFlowEstimator

View File

@ -52,7 +52,7 @@ namespace cv
namespace videostab namespace videostab
{ {
//! @addtogroup vieostab //! @addtogroup videostab
//! @{ //! @{
class CV_EXPORTS IOutlierRejector class CV_EXPORTS IOutlierRejector

View File

@ -51,7 +51,7 @@ namespace cv
namespace videostab namespace videostab
{ {
//! @addtogroup vieostab //! @addtogroup videostab
//! @{ //! @{
template <typename T> inline T& at(int idx, std::vector<T> &items) template <typename T> inline T& at(int idx, std::vector<T> &items)

View File

@ -60,7 +60,7 @@ namespace cv
namespace videostab namespace videostab
{ {
//! @addtogroup vieostab //! @addtogroup videostab
//! @{ //! @{
class CV_EXPORTS StabilizerBase class CV_EXPORTS StabilizerBase

View File

@ -54,7 +54,7 @@ namespace cv
namespace videostab namespace videostab
{ {
//! @addtogroup vieostab //! @addtogroup videostab
//! @{ //! @{
class CV_EXPORTS WobbleSuppressorBase class CV_EXPORTS WobbleSuppressorBase