Commit 9b55c099 authored by Maksim Shabunin's avatar Maksim Shabunin

Basic doxygen documentation support

- updated existing Doxyfile.in
- added corresponding cmake instructions
- added some specific files (layout, icon)
- clean existing doxygen warnings

Conflicts:
	CMakeLists.txt
	doc/CMakeLists.txt
	modules/core/include/opencv2/core.hpp
	modules/core/include/opencv2/core/base.hpp
	modules/core/include/opencv2/core/cuda.inl.hpp
	modules/core/include/opencv2/core/mat.hpp
	modules/core/include/opencv2/core/matx.hpp
	modules/core/include/opencv2/core/types.hpp
	modules/flann/include/opencv2/flann/lsh_table.h
	modules/imgproc/include/opencv2/imgproc.hpp
parent 7bff3378
...@@ -483,8 +483,13 @@ include(cmake/OpenCVFindLibsPerf.cmake) ...@@ -483,8 +483,13 @@ include(cmake/OpenCVFindLibsPerf.cmake)
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# --- LATEX for pdf documentation --- # --- LATEX for pdf documentation ---
unset(HAVE_DOXYGEN CACHE)
if(BUILD_DOCS) if(BUILD_DOCS)
include(cmake/OpenCVFindLATEX.cmake) include(cmake/OpenCVFindLATEX.cmake)
find_host_program(DOXYGEN_BUILD doxygen)
if (DOXYGEN_BUILD)
set(HAVE_DOXYGEN 1)
endif (DOXYGEN_BUILD)
endif(BUILD_DOCS) endif(BUILD_DOCS)
# --- Python Support --- # --- Python Support ---
...@@ -1047,6 +1052,7 @@ if(BUILD_DOCS) ...@@ -1047,6 +1052,7 @@ if(BUILD_DOCS)
endif() endif()
status(" Sphinx:" HAVE_SPHINX THEN "${SPHINX_BUILD} (ver ${SPHINX_VERSION})" ELSE NO) status(" Sphinx:" HAVE_SPHINX THEN "${SPHINX_BUILD} (ver ${SPHINX_VERSION})" ELSE NO)
status(" PdfLaTeX compiler:" PDFLATEX_COMPILER THEN "${PDFLATEX_COMPILER}" ELSE NO) status(" PdfLaTeX compiler:" PDFLATEX_COMPILER THEN "${PDFLATEX_COMPILER}" ELSE NO)
status(" Doxygen:" HAVE_DOXYGEN THEN "YES (${DOXYGEN_BUILD})" ELSE NO)
endif() endif()
# ========================== samples and tests ========================== # ========================== samples and tests ==========================
......
# #-----------------------
# CMake file for OpenCV docs # CMake file for OpenCV docs
# #-----------------------
if(BUILD_DOCS AND HAVE_SPHINX) set(HAVE_DOC_GENERATOR BUILD_DOCS AND (HAVE_SPHINX OR HAVE_DOXYGEN))
if(HAVE_DOC_GENERATOR)
project(opencv_docs) project(opencv_docs)
set(DOC_LIST
"${OpenCV_SOURCE_DIR}/doc/opencv-logo.png"
"${OpenCV_SOURCE_DIR}/doc/opencv-logo2.png"
"${OpenCV_SOURCE_DIR}/doc/opencv-logo-white.png"
"${OpenCV_SOURCE_DIR}/doc/opencv.ico"
"${OpenCV_SOURCE_DIR}/doc/pattern.png"
"${OpenCV_SOURCE_DIR}/doc/acircles_pattern.png")
if(NOT INSTALL_CREATE_DISTRIB)
list(APPEND DOC_LIST "${OpenCV_SOURCE_DIR}/doc/haartraining.htm")
endif()
set(OPTIONAL_DOC_LIST "")
# build lists of modules to be documented # build lists of modules to be documented
set(BASE_MODULES "") set(BASE_MODULES "")
set(EXTRA_MODULES "") set(EXTRA_MODULES "")
...@@ -32,18 +18,29 @@ if(BUILD_DOCS AND HAVE_SPHINX) ...@@ -32,18 +18,29 @@ if(BUILD_DOCS AND HAVE_SPHINX)
list(APPEND EXTRA_MODULES ${mod}) list(APPEND EXTRA_MODULES ${mod})
endif() endif()
endforeach() endforeach()
ocv_list_sort(BASE_MODULES)
ocv_list_sort(EXTRA_MODULES)
set(FIXED_ORDER_MODULES core imgproc highgui video calib3d features2d objdetect ml flann gpu photo stitching nonfree contrib legacy) set(FIXED_ORDER_MODULES core imgproc highgui video calib3d features2d objdetect ml flann gpu photo stitching nonfree contrib legacy)
list(REMOVE_ITEM BASE_MODULES ${FIXED_ORDER_MODULES}) list(REMOVE_ITEM BASE_MODULES ${FIXED_ORDER_MODULES})
set(BASE_MODULES ${FIXED_ORDER_MODULES} ${BASE_MODULES})
ocv_list_sort(BASE_MODULES) set(DOC_LIST
ocv_list_sort(EXTRA_MODULES) "${OpenCV_SOURCE_DIR}/doc/opencv-logo.png"
"${OpenCV_SOURCE_DIR}/doc/opencv-logo2.png"
"${OpenCV_SOURCE_DIR}/doc/opencv-logo-white.png"
"${OpenCV_SOURCE_DIR}/doc/opencv.ico"
"${OpenCV_SOURCE_DIR}/doc/pattern.png"
"${OpenCV_SOURCE_DIR}/doc/acircles_pattern.png")
set(OPTIONAL_DOC_LIST "")
endif(HAVE_DOC_GENERATOR)
set(BASE_MODULES ${FIXED_ORDER_MODULES} ${BASE_MODULES}) # ========= Sphinx docs =========
if(BUILD_DOCS AND HAVE_SPHINX)
if(NOT INSTALL_CREATE_DISTRIB)
list(APPEND DOC_LIST "${OpenCV_SOURCE_DIR}/doc/haartraining.htm")
endif()
# build lists of documentation files and generate table of contents for reference manual # build lists of documentation files and generate table of contents for reference manual
set(DOC_FAKE_ROOT "${CMAKE_CURRENT_BINARY_DIR}/fake-root") set(DOC_FAKE_ROOT "${CMAKE_CURRENT_BINARY_DIR}/fake-root")
set(DOC_FAKE_ROOT_FILES "") set(DOC_FAKE_ROOT_FILES "")
...@@ -98,7 +95,6 @@ if(BUILD_DOCS AND HAVE_SPHINX) ...@@ -98,7 +95,6 @@ if(BUILD_DOCS AND HAVE_SPHINX)
if(PDFLATEX_COMPILER) if(PDFLATEX_COMPILER)
add_custom_target(docs add_custom_target(docs
COMMAND ${SPHINX_BUILD} -b latex -c "${CMAKE_CURRENT_SOURCE_DIR}" "${DOC_FAKE_ROOT}" . COMMAND ${SPHINX_BUILD} -b latex -c "${CMAKE_CURRENT_SOURCE_DIR}" "${DOC_FAKE_ROOT}" .
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/pics ${CMAKE_CURRENT_BINARY_DIR}/doc/opencv1/pics
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/mymath.sty ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/mymath.sty ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/patch_refman_latex.py" opencv2refman.tex COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/patch_refman_latex.py" opencv2refman.tex
COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/patch_refman_latex.py" opencv2manager.tex COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/patch_refman_latex.py" opencv2manager.tex
...@@ -142,12 +138,48 @@ if(BUILD_DOCS AND HAVE_SPHINX) ...@@ -142,12 +138,48 @@ if(BUILD_DOCS AND HAVE_SPHINX)
set_target_properties(html_docs PROPERTIES FOLDER "documentation") set_target_properties(html_docs PROPERTIES FOLDER "documentation")
endif() endif()
endif()
# ========= Doxygen docs =========
if(BUILD_DOCS AND HAVE_DOXYGEN)
set(candidates)
set(all_headers)
set(all_images)
list(APPEND candidates ${BASE_MODULES} ${EXTRA_MODULES})
# blacklisted modules
ocv_list_filterout(candidates "^ts$")
# gathering headers
foreach(m ${candidates})
set(all_headers ${all_headers} "${OPENCV_MODULE_opencv_${m}_HEADERS}")
set(docs_dir "${OPENCV_MODULE_opencv_${m}_LOCATION}/doc")
if(EXISTS ${docs_dir})
set(all_images ${all_images} ${docs_dir})
set(all_headers ${all_headers} ${docs_dir})
endif()
endforeach()
# additional config
string(REGEX REPLACE ";" " \\\\\\n" CMAKE_DOXYGEN_INPUT_LIST "${all_headers}")
string(REGEX REPLACE ";" " \\\\\\n" CMAKE_DOXYGEN_IMAGE_PATH "${all_images}")
set(CMAKE_DOXYGEN_INDEX_MD "${CMAKE_SOURCE_DIR}/README.md")
set(CMAKE_DOXYGEN_LAYOUT "${CMAKE_CURRENT_SOURCE_DIR}/DoxygenLayout.xml")
set(CMAKE_DOXYGEN_OUTPUT_PATH "doxygen")
# writing file
set(doxyfile "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
configure_file(Doxyfile.in ${doxyfile} @ONLY)
add_custom_target(doxygen
COMMAND ${DOXYGEN_BUILD} ${doxyfile}
DEPENDS ${doxyfile} ${all_headers} ${all_images})
endif()
if(HAVE_DOC_GENERATOR)
# installation
foreach(f ${DOC_LIST}) foreach(f ${DOC_LIST})
install(FILES "${f}" DESTINATION "${OPENCV_DOC_INSTALL_PATH}" COMPONENT docs) install(FILES "${f}" DESTINATION "${OPENCV_DOC_INSTALL_PATH}" COMPONENT docs)
endforeach() endforeach()
foreach(f ${OPTIONAL_DOC_LIST}) foreach(f ${OPTIONAL_DOC_LIST})
install(FILES "${f}" DESTINATION "${OPENCV_DOC_INSTALL_PATH}" OPTIONAL COMPONENT docs) install(FILES "${f}" DESTINATION "${OPENCV_DOC_INSTALL_PATH}" OPTIONAL COMPONENT docs)
endforeach() endforeach()
endif(HAVE_DOC_GENERATOR)
endif()
This diff is collapsed.
<doxygenlayout version="1.0">
<!-- Generated by doxygen 1.8.6 -->
<!-- Navigation index tabs for HTML output -->
<navindex>
<tab type="mainpage" visible="yes" title=""/>
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="modules" visible="yes" title="" intro=""/>
<tab type="namespaces" visible="yes" title="">
<tab type="namespacelist" visible="yes" title="" intro=""/>
</tab>
<tab type="classes" visible="yes" title="">
<tab type="classlist" visible="yes" title="" intro=""/>
<tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
</tab>
<tab type="files" visible="yes" title="">
<tab type="filelist" visible="yes" title="Files index" intro=""/>
<tab type="globals" visible="yes" title="Global objects" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
</navindex>
<!-- Layout definition for a class page -->
<class>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<inheritancegraph visible="$CLASS_GRAPH"/>
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
<memberdecl>
<nestedclasses visible="yes" title=""/>
<publictypes title=""/>
<services title=""/>
<interfaces title=""/>
<publicslots title=""/>
<signals title=""/>
<publicmethods title=""/>
<publicstaticmethods title=""/>
<publicattributes title=""/>
<publicstaticattributes title=""/>
<protectedtypes title=""/>
<protectedslots title=""/>
<protectedmethods title=""/>
<protectedstaticmethods title=""/>
<protectedattributes title=""/>
<protectedstaticattributes title=""/>
<packagetypes title=""/>
<packagemethods title=""/>
<packagestaticmethods title=""/>
<packageattributes title=""/>
<packagestaticattributes title=""/>
<properties title=""/>
<events title=""/>
<privatetypes title=""/>
<privateslots title=""/>
<privatemethods title=""/>
<privatestaticmethods title=""/>
<privateattributes title=""/>
<privatestaticattributes title=""/>
<friends title=""/>
<related title="" subtitle=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<services title=""/>
<interfaces title=""/>
<constructors title=""/>
<functions title=""/>
<related title=""/>
<variables title=""/>
<properties title=""/>
<events title=""/>
</memberdef>
<allmemberslink visible="yes"/>
<usedfiles visible="$SHOW_USED_FILES"/>
<authorsection visible="yes"/>
</class>
<!-- Layout definition for a namespace page -->
<namespace>
<briefdescription visible="yes"/>
<memberdecl>
<nestednamespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<classes visible="yes" title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection visible="yes"/>
</namespace>
<!-- Layout definition for a file page -->
<file>
<briefdescription visible="yes"/>
<includes visible="$SHOW_INCLUDE_FILES"/>
<includegraph visible="$INCLUDE_GRAPH"/>
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
<sourcelink visible="yes"/>
<memberdecl>
<classes visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<constantgroups visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<functions title=""/>
<variables title=""/>
</memberdef>
<authorsection/>
</file>
<!-- Layout definition for a group page -->
<group>
<briefdescription visible="yes"/>
<groupgraph visible="$GROUP_GRAPHS"/>
<memberdecl>
<nestedgroups visible="yes" title=""/>
<dirs visible="yes" title=""/>
<files visible="yes" title=""/>
<namespaces visible="yes" title=""/>
<classes visible="yes" title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
<membergroups visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
<memberdef>
<pagedocs/>
<inlineclasses title=""/>
<defines title=""/>
<typedefs title=""/>
<enums title=""/>
<enumvalues title=""/>
<functions title=""/>
<variables title=""/>
<signals title=""/>
<publicslots title=""/>
<protectedslots title=""/>
<privateslots title=""/>
<events title=""/>
<properties title=""/>
<friends title=""/>
</memberdef>
<authorsection visible="yes"/>
</group>
<!-- Layout definition for a directory page -->
<directory>
<briefdescription visible="yes"/>
<directorygraph visible="yes"/>
<memberdecl>
<dirs visible="yes"/>
<files visible="yes"/>
</memberdecl>
<detaileddescription title=""/>
</directory>
</doxygenlayout>
...@@ -664,6 +664,7 @@ namespace cv ...@@ -664,6 +664,7 @@ namespace cv
*\param center the transformation center: where the output precision is maximal *\param center the transformation center: where the output precision is maximal
*\param R the number of rings of the cortical image (default value 70 pixel) *\param R the number of rings of the cortical image (default value 70 pixel)
*\param ro0 the radius of the blind spot (default value 3 pixel) *\param ro0 the radius of the blind spot (default value 3 pixel)
*\param interp interpolation algorithm
*\param full \a 1 (default value) means that the retinal image (the inverse transform) is computed within the circumscribing circle. *\param full \a 1 (default value) means that the retinal image (the inverse transform) is computed within the circumscribing circle.
* \a 0 means that the retinal image is computed within the inscribed circle. * \a 0 means that the retinal image is computed within the inscribed circle.
*\param S the number of sectors of the cortical image (default value 70 pixel). *\param S the number of sectors of the cortical image (default value 70 pixel).
......
...@@ -88,7 +88,7 @@ enum RETINA_COLORSAMPLINGMETHOD ...@@ -88,7 +88,7 @@ enum RETINA_COLORSAMPLINGMETHOD
class RetinaFilter; class RetinaFilter;
/** /**
* @class Retina a wrapper class which allows the Gipsa/Listic Labs model to be used. * a wrapper class which allows the Gipsa/Listic Labs model to be used.
* This retina model allows spatio-temporal image processing (applied on still images, video sequences). * This retina model allows spatio-temporal image processing (applied on still images, video sequences).
* As a summary, these are the retina model properties: * As a summary, these are the retina model properties:
* => It applies a spectral whithening (mid-frequency details enhancement) * => It applies a spectral whithening (mid-frequency details enhancement)
...@@ -199,7 +199,6 @@ public: ...@@ -199,7 +199,6 @@ public:
* => if the xml file does not exist, then default setup is applied * => if the xml file does not exist, then default setup is applied
* => warning, Exceptions are thrown if read XML file is not valid * => warning, Exceptions are thrown if read XML file is not valid
* @param newParameters : a parameters structures updated with the new target configuration * @param newParameters : a parameters structures updated with the new target configuration
* @param applyDefaultSetupOnFailure : set to true if an error must be thrown on error
*/ */
void setup(RetinaParameters newParameters); void setup(RetinaParameters newParameters);
...@@ -216,7 +215,7 @@ public: ...@@ -216,7 +215,7 @@ public:
/** /**
* write xml/yml formated parameters information * write xml/yml formated parameters information
* @rparam fs : the filename of the xml file that will be open and writen with formatted parameters information * @param fs : the filename of the xml file that will be open and writen with formatted parameters information
*/ */
virtual void write( std::string fs ) const; virtual void write( std::string fs ) const;
......
...@@ -48,6 +48,8 @@ ...@@ -48,6 +48,8 @@
#include <opencv2/core/core.hpp> #include <opencv2/core/core.hpp>
/*! @file */
namespace cv namespace cv
{ {
template<typename T> template<typename T>
...@@ -429,6 +431,7 @@ cv::Affine3<Y> cv::Affine3<T>::cast() const ...@@ -429,6 +431,7 @@ cv::Affine3<Y> cv::Affine3<T>::cast() const
return Affine3<Y>(matrix); return Affine3<Y>(matrix);
} }
/** @cond IGNORED */
template<typename T> inline template<typename T> inline
cv::Affine3<T> cv::operator*(const cv::Affine3<T>& affine1, const cv::Affine3<T>& affine2) cv::Affine3<T> cv::operator*(const cv::Affine3<T>& affine1, const cv::Affine3<T>& affine2)
{ {
...@@ -446,6 +449,7 @@ V cv::operator*(const cv::Affine3<T>& affine, const V& v) ...@@ -446,6 +449,7 @@ V cv::operator*(const cv::Affine3<T>& affine, const V& v)
r.z = m.val[8] * v.x + m.val[9] * v.y + m.val[10] * v.z + m.val[11]; r.z = m.val[8] * v.x + m.val[9] * v.y + m.val[10] * v.z + m.val[11];
return r; return r;
} }
/** @endcond */
static inline static inline
cv::Vec3f cv::operator*(const cv::Affine3f& affine, const cv::Vec3f& v) cv::Vec3f cv::operator*(const cv::Affine3f& affine, const cv::Vec3f& v)
......
...@@ -716,9 +716,6 @@ public: ...@@ -716,9 +716,6 @@ public:
}; };
/*!
\typedef
*/
typedef Complex<float> Complexf; typedef Complex<float> Complexf;
typedef Complex<double> Complexd; typedef Complex<double> Complexd;
...@@ -885,11 +882,6 @@ public: ...@@ -885,11 +882,6 @@ public:
}; };
/*!
\typedef
shorter aliases for the most popular cv::Point_<>, cv::Size_<> and cv::Rect_<> specializations
*/
typedef Point_<int> Point2i; typedef Point_<int> Point2i;
typedef Point2i Point; typedef Point2i Point;
typedef Size_<int> Size2i; typedef Size_<int> Size2i;
...@@ -1623,8 +1615,6 @@ public: ...@@ -1623,8 +1615,6 @@ public:
cv::Mat::step that is used to actually compute address of a matrix element. cv::Mat::step is needed because the matrix can be cv::Mat::step that is used to actually compute address of a matrix element. cv::Mat::step is needed because the matrix can be
a part of another matrix or because there can some padding space in the end of each row for a proper alignment. a part of another matrix or because there can some padding space in the end of each row for a proper alignment.
\image html roi.png
Given these parameters, address of the matrix element M_{ij} is computed as following: Given these parameters, address of the matrix element M_{ij} is computed as following:
addr(M_{ij})=M.data + M.step*i + j*M.elemSize() addr(M_{ij})=M.data + M.step*i + j*M.elemSize()
...@@ -2266,7 +2256,7 @@ CV_EXPORTS_W void absdiff(InputArray src1, InputArray src2, OutputArray dst); ...@@ -2266,7 +2256,7 @@ CV_EXPORTS_W void absdiff(InputArray src1, InputArray src2, OutputArray dst);
//! set mask elements for those array elements which are within the element-specific bounding box (dst = lowerb <= src && src < upperb) //! set mask elements for those array elements which are within the element-specific bounding box (dst = lowerb <= src && src < upperb)
CV_EXPORTS_W void inRange(InputArray src, InputArray lowerb, CV_EXPORTS_W void inRange(InputArray src, InputArray lowerb,
InputArray upperb, OutputArray dst); InputArray upperb, OutputArray dst);
//! compares elements of two arrays (dst = src1 <cmpop> src2) //! compares elements of two arrays (dst = src1 \<cmpop\> src2)
CV_EXPORTS_W void compare(InputArray src1, InputArray src2, OutputArray dst, int cmpop); CV_EXPORTS_W void compare(InputArray src1, InputArray src2, OutputArray dst, int cmpop);
//! computes per-element minimum of two arrays (dst = min(src1, src2)) //! computes per-element minimum of two arrays (dst = min(src1, src2))
CV_EXPORTS_W void min(InputArray src1, InputArray src2, OutputArray dst); CV_EXPORTS_W void min(InputArray src1, InputArray src2, OutputArray dst);
...@@ -2731,7 +2721,7 @@ CV_EXPORTS_W Size getTextSize(const string& text, int fontFace, ...@@ -2731,7 +2721,7 @@ CV_EXPORTS_W Size getTextSize(const string& text, int fontFace,
While cv::Mat is sufficient in most cases, cv::Mat_ can be more convenient if you use a lot of element While cv::Mat is sufficient in most cases, cv::Mat_ can be more convenient if you use a lot of element
access operations and if you know matrix type at compile time. access operations and if you know matrix type at compile time.
Note that cv::Mat::at<_Tp>(int y, int x) and cv::Mat_<_Tp>::operator ()(int y, int x) do absolutely the Note that cv::Mat::at\<_Tp\>(int y, int x) and cv::Mat_\<_Tp\>::operator ()(int y, int x) do absolutely the
same thing and run at the same speed, but the latter is certainly shorter: same thing and run at the same speed, but the latter is certainly shorter:
\code \code
...@@ -3443,6 +3433,7 @@ public: ...@@ -3443,6 +3433,7 @@ public:
void convertTo( SparseMat& m, int rtype, double alpha=1 ) const; void convertTo( SparseMat& m, int rtype, double alpha=1 ) const;
//! converts sparse matrix to dense n-dim matrix with optional type conversion and scaling. //! converts sparse matrix to dense n-dim matrix with optional type conversion and scaling.
/*! /*!
\param m Destination matrix
\param rtype The output matrix data type. When it is =-1, the output array will have the same data type as (*this) \param rtype The output matrix data type. When it is =-1, the output array will have the same data type as (*this)
\param alpha The scale factor \param alpha The scale factor
\param beta The optional delta added to the scaled values before the conversion \param beta The optional delta added to the scaled values before the conversion
......
...@@ -512,6 +512,7 @@ namespace cv { namespace gpu ...@@ -512,6 +512,7 @@ namespace cv { namespace gpu
return *this; return *this;
} }
/** @cond IGNORED */
template <class T> inline GpuMat::operator PtrStepSz<T>() const template <class T> inline GpuMat::operator PtrStepSz<T>() const
{ {
return PtrStepSz<T>(rows, cols, (T*)data, step); return PtrStepSz<T>(rows, cols, (T*)data, step);
...@@ -531,6 +532,7 @@ namespace cv { namespace gpu ...@@ -531,6 +532,7 @@ namespace cv { namespace gpu
{ {
return PtrStep_<T>(static_cast< DevMem2D_<T> >(*this)); return PtrStep_<T>(static_cast< DevMem2D_<T> >(*this));
} }
/** @endcond */
inline GpuMat createContinuous(int rows, int cols, int type) inline GpuMat createContinuous(int rows, int cols, int type)
{ {
......
...@@ -365,7 +365,7 @@ template<typename _Tp, int m, int n> inline double Matx<_Tp, m, n>::ddot(const M ...@@ -365,7 +365,7 @@ template<typename _Tp, int m, int n> inline double Matx<_Tp, m, n>::ddot(const M
} }
/** @cond IGNORED */
template<typename _Tp, int m, int n> inline template<typename _Tp, int m, int n> inline
Matx<_Tp,m,n> Matx<_Tp,m,n>::diag(const typename Matx<_Tp,m,n>::diag_type& d) Matx<_Tp,m,n> Matx<_Tp,m,n>::diag(const typename Matx<_Tp,m,n>::diag_type& d)
{ {
...@@ -374,6 +374,7 @@ Matx<_Tp,m,n> Matx<_Tp,m,n>::diag(const typename Matx<_Tp,m,n>::diag_type& d) ...@@ -374,6 +374,7 @@ Matx<_Tp,m,n> Matx<_Tp,m,n>::diag(const typename Matx<_Tp,m,n>::diag_type& d)
M(i,i) = d(i, 0); M(i,i) = d(i, 0);
return M; return M;
} }
/** @endcond */
template<typename _Tp, int m, int n> inline template<typename _Tp, int m, int n> inline
Matx<_Tp,m,n> Matx<_Tp,m,n>::randu(_Tp a, _Tp b) Matx<_Tp,m,n> Matx<_Tp,m,n>::randu(_Tp a, _Tp b)
......
...@@ -415,7 +415,7 @@ public: ...@@ -415,7 +415,7 @@ public:
* @param orientationNormalized enable orientation normalization * @param orientationNormalized enable orientation normalization
* @param scaleNormalized enable scale normalization * @param scaleNormalized enable scale normalization
* @param patternScale scaling of the description pattern * @param patternScale scaling of the description pattern
* @param nbOctave number of octaves covered by the detected keypoints * @param nOctaves number of octaves covered by the detected keypoints
* @param selectedPairs (optional) user defined selected pairs * @param selectedPairs (optional) user defined selected pairs
*/ */
explicit FREAK( bool orientationNormalized = true, explicit FREAK( bool orientationNormalized = true,
...@@ -814,6 +814,8 @@ class CV_EXPORTS FastAdjuster: public AdjusterAdapter ...@@ -814,6 +814,8 @@ class CV_EXPORTS FastAdjuster: public AdjusterAdapter
public: public:
/**\param init_thresh the initial threshold to start with, default = 20 /**\param init_thresh the initial threshold to start with, default = 20
* \param nonmax whether to use non max or not for fast feature detection * \param nonmax whether to use non max or not for fast feature detection
* \param min_thresh
* \param max_thresh
*/ */
FastAdjuster(int init_thresh=20, bool nonmax=true, int min_thresh=1, int max_thresh=200); FastAdjuster(int init_thresh=20, bool nonmax=true, int min_thresh=1, int max_thresh=200);
......
...@@ -57,14 +57,14 @@ namespace cvflann { ...@@ -57,14 +57,14 @@ namespace cvflann {
class DynamicBitset class DynamicBitset
{ {
public: public:
/** @param default constructor /** default constructor
*/ */
DynamicBitset() DynamicBitset()
{ {
} }
/** @param only constructor we use in our code /** only constructor we use in our code
* @param the size of the bitset (in bits) * @param sz the size of the bitset (in bits)
*/ */
DynamicBitset(size_t sz) DynamicBitset(size_t sz)
{ {
...@@ -87,7 +87,7 @@ public: ...@@ -87,7 +87,7 @@ public:
return bitset_.empty(); return bitset_.empty();
} }
/** @param set all the bits to 0 /** set all the bits to 0
*/ */
void reset() void reset()
{ {
...@@ -95,7 +95,7 @@ public: ...@@ -95,7 +95,7 @@ public:
} }
/** @brief set one bit to 0 /** @brief set one bit to 0
* @param * @param index
*/ */
void reset(size_t index) void reset(size_t index)
{ {
...@@ -106,15 +106,15 @@ public: ...@@ -106,15 +106,15 @@ public:
* This function is useful when resetting a given set of bits so that the * This function is useful when resetting a given set of bits so that the
* whole bitset ends up being 0: if that's the case, we don't care about setting * whole bitset ends up being 0: if that's the case, we don't care about setting
* other bits to 0 * other bits to 0
* @param * @param index
*/ */
void reset_block(size_t index) void reset_block(size_t index)
{ {
bitset_[index / cell_bit_size_] = 0; bitset_[index / cell_bit_size_] = 0;
} }
/** @param resize the bitset so that it contains at least size bits /** resize the bitset so that it contains at least sz bits
* @param size * @param sz
*/ */
void resize(size_t sz) void resize(size_t sz)
{ {
...@@ -122,7 +122,7 @@ public: ...@@ -122,7 +122,7 @@ public:
bitset_.resize(sz / cell_bit_size_ + 1); bitset_.resize(sz / cell_bit_size_ + 1);
} }
/** @param set a bit to true /** set a bit to true
* @param index the index of the bit to set to 1 * @param index the index of the bit to set to 1
*/ */
void set(size_t index) void set(size_t index)
...@@ -130,14 +130,14 @@ public: ...@@ -130,14 +130,14 @@ public:
bitset_[index / cell_bit_size_] |= size_t(1) << (index % cell_bit_size_); bitset_[index / cell_bit_size_] |= size_t(1) << (index % cell_bit_size_);
} }
/** @param gives the number of contained bits /** gives the number of contained bits
*/ */
size_t size() const size_t size() const
{ {
return size_; return size_;
} }
/** @param check if a bit is set /** check if a bit is set
* @param index the index of the bit to check * @param index the index of the bit to check
* @return true if the bit is set * @return true if the bit is set
*/ */
......
...@@ -152,9 +152,13 @@ public: ...@@ -152,9 +152,13 @@ public:
* Create the mask and allocate the memory * Create the mask and allocate the memory
* @param feature_size is the size of the feature (considered as a ElementType[]) * @param feature_size is the size of the feature (considered as a ElementType[])
* @param key_size is the number of bits that are turned on in the feature * @param key_size is the number of bits that are turned on in the feature
* @param indices
*/ */
LshTable(unsigned int /*feature_size*/, unsigned int /*key_size*/, std::vector<size_t> & /*indices*/) LshTable(unsigned int feature_size, unsigned int key_size, std::vector<size_t> & indices)
{ {
(void)feature_size;
(void)key_size;
(void)indices;
std::cerr << "LSH is not implemented for that type" << std::endl; std::cerr << "LSH is not implemented for that type" << std::endl;
assert(0); assert(0);
} }
......
...@@ -449,7 +449,7 @@ class RadiusUniqueResultSet : public UniqueResultSet<DistanceType> ...@@ -449,7 +449,7 @@ class RadiusUniqueResultSet : public UniqueResultSet<DistanceType>
{ {
public: public:
/** Constructor /** Constructor
* @param capacity the number of neighbors to store at max * @param radius the maximum distance of a neighbor
*/ */
RadiusUniqueResultSet(DistanceType radius) : RadiusUniqueResultSet(DistanceType radius) :
radius_(radius) radius_(radius)
...@@ -509,6 +509,7 @@ class KNNRadiusUniqueResultSet : public KNNUniqueResultSet<DistanceType> ...@@ -509,6 +509,7 @@ class KNNRadiusUniqueResultSet : public KNNUniqueResultSet<DistanceType>
public: public:
/** Constructor /** Constructor
* @param capacity the number of neighbors to store at max * @param capacity the number of neighbors to store at max
* @param radius the maximum distance of a neighbor
*/ */
KNNRadiusUniqueResultSet(unsigned int capacity, DistanceType radius) KNNRadiusUniqueResultSet(unsigned int capacity, DistanceType radius)
{ {
......
...@@ -537,7 +537,7 @@ CV_EXPORTS void log(const GpuMat& a, GpuMat& b, Stream& stream = Stream::Null()) ...@@ -537,7 +537,7 @@ CV_EXPORTS void log(const GpuMat& a, GpuMat& b, Stream& stream = Stream::Null())
//! supports all, except depth == CV_64F //! supports all, except depth == CV_64F
CV_EXPORTS void pow(const GpuMat& src, double power, GpuMat& dst, Stream& stream = Stream::Null()); CV_EXPORTS void pow(const GpuMat& src, double power, GpuMat& dst, Stream& stream = Stream::Null());
//! compares elements of two arrays (c = a <cmpop> b) //! compares elements of two arrays (c = a \<cmpop\> b)
CV_EXPORTS void compare(const GpuMat& a, const GpuMat& b, GpuMat& c, int cmpop, Stream& stream = Stream::Null()); CV_EXPORTS void compare(const GpuMat& a, const GpuMat& b, GpuMat& c, int cmpop, Stream& stream = Stream::Null());
CV_EXPORTS void compare(const GpuMat& a, Scalar sc, GpuMat& c, int cmpop, Stream& stream = Stream::Null()); CV_EXPORTS void compare(const GpuMat& a, Scalar sc, GpuMat& c, int cmpop, Stream& stream = Stream::Null());
...@@ -2264,6 +2264,7 @@ public: ...@@ -2264,6 +2264,7 @@ public:
* model. * model.
* @param frame Input frame * @param frame Input frame
* @param fgmask Output mask image representing foreground and background pixels * @param fgmask Output mask image representing foreground and background pixels
* @param learningRate determines how quickly features are “forgotten” from histograms
* @param stream Stream for the asynchronous version * @param stream Stream for the asynchronous version
*/ */
void operator ()(const GpuMat& frame, GpuMat& fgmask, float learningRate = -1.0f, Stream& stream = Stream::Null()); void operator ()(const GpuMat& frame, GpuMat& fgmask, float learningRate = -1.0f, Stream& stream = Stream::Null());
......
...@@ -218,6 +218,7 @@ public: ...@@ -218,6 +218,7 @@ public:
* model. * model.
* @param image Input image * @param image Input image
* @param fgmask Output mask image representing foreground and background pixels * @param fgmask Output mask image representing foreground and background pixels
* @param learningRate Determines how quickly features are "forgotten" from histograms
*/ */
virtual void operator()(InputArray image, OutputArray fgmask, double learningRate=-1.0); virtual void operator()(InputArray image, OutputArray fgmask, double learningRate=-1.0);
......
...@@ -258,7 +258,7 @@ CV_EXPORTS_W int meanShift( InputArray probImage, CV_OUT CV_IN_OUT Rect& window, ...@@ -258,7 +258,7 @@ CV_EXPORTS_W int meanShift( InputArray probImage, CV_OUT CV_IN_OUT Rect& window,
/*! /*!
Kalman filter. Kalman filter.
The class implements standard Kalman filter \url{http://en.wikipedia.org/wiki/Kalman_filter}. The class implements standard Kalman filter http://en.wikipedia.org/wiki/Kalman_filter.
However, you can modify KalmanFilter::transitionMatrix, KalmanFilter::controlMatrix and However, you can modify KalmanFilter::transitionMatrix, KalmanFilter::controlMatrix and
KalmanFilter::measurementMatrix to get the extended Kalman filter functionality. KalmanFilter::measurementMatrix to get the extended Kalman filter functionality.
*/ */
......
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