From 9b55c0999913e56778ffbe565178253b0cb33d49 Mon Sep 17 00:00:00 2001 From: Maksim Shabunin Date: Thu, 9 Oct 2014 14:04:00 +0400 Subject: [PATCH] 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 --- CMakeLists.txt | 6 + doc/CMakeLists.txt | 88 ++++-- doc/Doxyfile.in | 288 +++++++++++++----- doc/DoxygenLayout.xml | 191 ++++++++++++ doc/opencv-logo-small.png | Bin 0 -> 1447 bytes .../include/opencv2/contrib/contrib.hpp | 1 + .../include/opencv2/contrib/retina.hpp | 5 +- modules/core/include/opencv2/core/affine.hpp | 4 + modules/core/include/opencv2/core/core.hpp | 15 +- modules/core/include/opencv2/core/gpumat.hpp | 2 + .../core/include/opencv2/core/operations.hpp | 3 +- .../include/opencv2/features2d/features2d.hpp | 4 +- .../include/opencv2/flann/dynamic_bitset.h | 22 +- .../flann/include/opencv2/flann/lsh_table.h | 6 +- .../flann/include/opencv2/flann/result_set.h | 3 +- modules/gpu/include/opencv2/gpu/gpu.hpp | 3 +- .../include/opencv2/video/background_segm.hpp | 1 + .../video/include/opencv2/video/tracking.hpp | 2 +- 18 files changed, 514 insertions(+), 130 deletions(-) create mode 100644 doc/DoxygenLayout.xml create mode 100644 doc/opencv-logo-small.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 771938ff18..d4c2dfaa11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -483,8 +483,13 @@ include(cmake/OpenCVFindLibsPerf.cmake) # ---------------------------------------------------------------------------- # --- LATEX for pdf documentation --- +unset(HAVE_DOXYGEN CACHE) if(BUILD_DOCS) include(cmake/OpenCVFindLATEX.cmake) + find_host_program(DOXYGEN_BUILD doxygen) + if (DOXYGEN_BUILD) + set(HAVE_DOXYGEN 1) + endif (DOXYGEN_BUILD) endif(BUILD_DOCS) # --- Python Support --- @@ -1047,6 +1052,7 @@ if(BUILD_DOCS) endif() status(" Sphinx:" HAVE_SPHINX THEN "${SPHINX_BUILD} (ver ${SPHINX_VERSION})" ELSE NO) status(" PdfLaTeX compiler:" PDFLATEX_COMPILER THEN "${PDFLATEX_COMPILER}" ELSE NO) + status(" Doxygen:" HAVE_DOXYGEN THEN "YES (${DOXYGEN_BUILD})" ELSE NO) endif() # ========================== samples and tests ========================== diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 3557a2bd2c..0994ab623a 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -1,25 +1,11 @@ -# +#----------------------- # 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) - - 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 set(BASE_MODULES "") set(EXTRA_MODULES "") @@ -32,18 +18,29 @@ if(BUILD_DOCS AND HAVE_SPHINX) list(APPEND EXTRA_MODULES ${mod}) endif() 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) - list(REMOVE_ITEM BASE_MODULES ${FIXED_ORDER_MODULES}) + set(BASE_MODULES ${FIXED_ORDER_MODULES} ${BASE_MODULES}) - ocv_list_sort(BASE_MODULES) - ocv_list_sort(EXTRA_MODULES) + 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") + 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 - set(DOC_FAKE_ROOT "${CMAKE_CURRENT_BINARY_DIR}/fake-root") set(DOC_FAKE_ROOT_FILES "") @@ -98,7 +95,6 @@ if(BUILD_DOCS AND HAVE_SPHINX) if(PDFLATEX_COMPILER) add_custom_target(docs 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 ${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 @@ -142,12 +138,48 @@ if(BUILD_DOCS AND HAVE_SPHINX) set_target_properties(html_docs PROPERTIES FOLDER "documentation") 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}) install(FILES "${f}" DESTINATION "${OPENCV_DOC_INSTALL_PATH}" COMPONENT docs) endforeach() - foreach(f ${OPTIONAL_DOC_LIST}) install(FILES "${f}" DESTINATION "${OPENCV_DOC_INSTALL_PATH}" OPTIONAL COMPONENT docs) endforeach() - -endif() +endif(HAVE_DOC_GENERATOR) diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index b25c77a6f7..dbb4be60ef 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -1,124 +1,272 @@ -# Doxyfile 1.3.9.1 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = opencv +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = OpenCV PROJECT_NUMBER = @OPENCV_VERSION@ -OUTPUT_DIRECTORY = . -CREATE_SUBDIRS = NO +PROJECT_BRIEF = "Open Source Computer Vision" +PROJECT_LOGO = @CMAKE_CURRENT_SOURCE_DIR@/opencv-logo-small.png +OUTPUT_DIRECTORY = @CMAKE_DOXYGEN_OUTPUT_PATH@ +CREATE_SUBDIRS = YES OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES -SORT_BRIEF_DOCS = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 4 +ALIASES = +TCL_SUBST = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +MARKDOWN_SUPPORT = YES +AUTOLINK_SUPPORT = NO +BUILTIN_STL_SUPPORT = YES +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +INLINE_GROUPED_CLASSES = NO +INLINE_SIMPLE_STRUCTS = NO +TYPEDEF_HIDES_STRUCT = YES +LOOKUP_CACHE_SIZE = 0 EXTRACT_ALL = YES -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- +EXTRACT_PRIVATE = NO +EXTRACT_PACKAGE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = NO +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +SHOW_GROUPED_MEMB_INC = NO +FORCE_LOCAL_INCLUDES = NO +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_MEMBERS_CTORS_1ST = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +STRICT_PROTO_MATCHING = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = @CMAKE_DOXYGEN_LAYOUT@ +CITE_BIB_FILES = QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- INPUT = @CMAKE_DOXYGEN_INPUT_LIST@ -FILE_PATTERNS = *.cpp *.h* -RECURSIVE = NO +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = +RECURSIVE = YES EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = CV_WRAP \ + CV_EXPORTS \ + CV_EXPORTS_W \ + CV_WRAP_AS EXAMPLE_PATH = -EXAMPLE_PATTERNS = +EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO IMAGE_PATH = @CMAKE_DOXYGEN_IMAGE_PATH@ INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES +FILTER_SOURCE_PATTERNS = +USE_MDFILE_AS_MAINPAGE = @CMAKE_DOXYGEN_INDEX_MD@ +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +SOURCE_TOOLTIPS = YES +USE_HTAGS = NO +VERBATIM_HEADERS = NO +ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_EXTRA_STYLESHEET = +HTML_EXTRA_FILES = +HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_GAMMA = 80 +HTML_TIMESTAMP = YES +HTML_DYNAMIC_SECTIONS = NO +HTML_INDEX_NUM_ENTRIES = 100 +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +DOCSET_PUBLISHER_ID = org.doxygen.Publisher +DOCSET_PUBLISHER_NAME = Publisher +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +GENERATE_QHP = NO +QCH_FILE = +QHP_NAMESPACE = org.doxygen.Project +QHP_VIRTUAL_FOLDER = doc +QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = +GENERATE_ECLIPSEHELP = NO +ECLIPSE_DOC_ID = org.doxygen.Project +DISABLE_INDEX = YES +GENERATE_TREEVIEW = YES +ENUM_VALUES_PER_LINE = 4 +TREEVIEW_WIDTH = 250 +EXT_LINKS_IN_WINDOW = YES +FORMULA_FONTSIZE = 10 +FORMULA_TRANSPARENT = YES +USE_MATHJAX = NO +MATHJAX_FORMAT = HTML-CSS +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest +MATHJAX_EXTENSIONS = +MATHJAX_CODEFILE = +SEARCHENGINE = YES +SERVER_BASED_SEARCH = NO +EXTERNAL_SEARCH = NO +SEARCHENGINE_URL = +SEARCHDATA_FILE = searchdata.xml +EXTERNAL_SEARCH_ID = +EXTRA_SEARCH_MAPPINGS = +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +LATEX_FOOTER = +LATEX_EXTRA_FILES = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +LATEX_SOURCE_CODE = NO +LATEX_BIB_STYLE = plain GENERATE_RTF = NO -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = GENERATE_MAN = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO GENERATE_XML = NO -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- +XML_OUTPUT = xml +XML_PROGRAMLISTING = YES +GENERATE_DOCBOOK = NO +DOCBOOK_OUTPUT = docbook GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- GENERATE_PERLMOD = NO -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = YES -PREDEFINED = CV_EXPORTS= CVAPI(x)=x __cplusplus=1 -SEARCH_INCLUDES = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = +PREDEFINED = CV_WRAP= \ + CV_WRAP_AS(x)= \ + __cplusplus=1 \ + CVAPI(x)=x \ + CV_PROP_RW= \ + CV_EXPORTS= \ + CV_EXPORTS_W= EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES +EXTERNAL_PAGES = YES PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = YES +MSCGEN_PATH = +DIA_PATH = +HIDE_UNDOC_RELATIONS = NO HAVE_DOT = NO +DOT_NUM_THREADS = 0 +DOT_FONTNAME = Helvetica +DOT_FONTSIZE = 10 +DOT_FONTPATH = CLASS_GRAPH = YES COLLABORATION_GRAPH = YES -UML_LOOK = NO +GROUP_GRAPHS = YES +UML_LOOK = YES +UML_LIMIT_NUM_FIELDS = 10 TEMPLATE_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO +CALL_GRAPH = YES +CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES -DOT_IMAGE_FORMAT = png +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = svg +INTERACTIVE_SVG = YES DOT_PATH = DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 +MSCFILE_DIRS = +DIAFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = YES diff --git a/doc/DoxygenLayout.xml b/doc/DoxygenLayout.xml new file mode 100644 index 0000000000..b2675719c9 --- /dev/null +++ b/doc/DoxygenLayout.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/opencv-logo-small.png b/doc/opencv-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..763ceb2b325b21a83ed10896daa8a9dc9dc5460b GIT binary patch literal 1447 zcmV;Y1z7rtP)QR9_N>qL7p*C?t@g zC^Di@vWKM~j3N*QEh(BFPBm#Dh$A&)6Q*6qY{r_$oqr$hzW1K1=bXLI@j7SDWpmEV z-fQpmKWnYM|7#tO3S9!c(sMO13%D1!8Mqv%2L^yHU=Oez_zpPg!H8deOkRTJg0BT~ zXvYQb3K|P9XRLuiFhQ_gkaGm(ZzF<-#~e68T?{KlwKcvMmAa*-2=-I}RH3a))p9D` z*HsXd1Ve&FX}jRO3WF-NF9hS2qP5x_73~nbCHP42ucJ(JTGncG1k@ZL`=p@HBHNlu ztO*{sDE6bEHptTE`F4jFQnFBP~ zVhmVeS*kOQ&EsiH;C~*p8~XltnZvF)J`G@3Iw-bHa8UriY!PHFvTdnxM!|kdDl#IN z9{_BLVAulerZlV=054FX;9u_l=-h_9S(hpvNco-k2#5_*`q2V3$$wx)^e6jm%m@ z)kX=J;`JBeL+;a05zMVLAkV2#nE!hUFw^k29B>qm?n3tke?j)bU{S|f>kn?ZrStvIS)B>uGspy?~8Ml~e zLUhCcRQNrc&^>BFpO}qtiCxJesAWdxThR1ixss)>K=dX6bts{wYC&K6j!Qq9x7$DbCa?5g=eF;Dbu>+BD2US$=`4C3c z4{DA$)@OiDgvf3=-C8RWg32MTN)T6bK-mcX{Gr)Uf@C*avZaLuP&J4)2M~WEUN*bs zQ;4q+uf%sj0b1=)GYv>vwAevzXMwQIbpW*y;T1oF%D7P0hEo6?* zEV4&H^FTam0o7Ut=D4eX|eRb0bbXc zB&(>zFz}k?H803uK9h!A$MD#1C31O}92Z%x^NNZrumIa=qp`p)U?gJAnHlmQ!o#la z7*<$KzAP71V_fAcj@DS_I^wWiucd!t1~?gIQb%BmfTa=rkNKXnmbsdMcFUOA7L)#6 z1ssSNP=mN3bc&LfFN>IC0666v`-?^CH4a(8G7GRnARe&nitWhM=@rN?A4CjC$nQh` z8oVZeMk02!A5heh!J18c_GS`7W=ir^iZbg+b*IGtQ)3#RYFW2cRA)XDKBz++IOY z_l5Jw;-af62x?P!7Aa|)*6QnXLK|Kio z^@CopmlH~EnL#W@{2Bw)dSpJhJ7)rA=hVd^DSuQl+8D2dSAH(uh}e!ejQGdI&j8|> ziOJQ73Go0$E?#9UxEu6`$+WZPP;Li32dcLL`X8{0(#+L2AF%)c002ovPDHLkV1oY9 Bnv?(l literal 0 HcmV?d00001 diff --git a/modules/contrib/include/opencv2/contrib/contrib.hpp b/modules/contrib/include/opencv2/contrib/contrib.hpp index 5684ee2422..61c88f8b3d 100644 --- a/modules/contrib/include/opencv2/contrib/contrib.hpp +++ b/modules/contrib/include/opencv2/contrib/contrib.hpp @@ -664,6 +664,7 @@ namespace cv *\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 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. * \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). diff --git a/modules/contrib/include/opencv2/contrib/retina.hpp b/modules/contrib/include/opencv2/contrib/retina.hpp index 3d7c847beb..00962255ae 100644 --- a/modules/contrib/include/opencv2/contrib/retina.hpp +++ b/modules/contrib/include/opencv2/contrib/retina.hpp @@ -88,7 +88,7 @@ enum RETINA_COLORSAMPLINGMETHOD 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). * As a summary, these are the retina model properties: * => It applies a spectral whithening (mid-frequency details enhancement) @@ -199,7 +199,6 @@ public: * => if the xml file does not exist, then default setup is applied * => warning, Exceptions are thrown if read XML file is not valid * @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); @@ -216,7 +215,7 @@ public: /** * 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; diff --git a/modules/core/include/opencv2/core/affine.hpp b/modules/core/include/opencv2/core/affine.hpp index 827d044b87..a1b0e1c5f6 100644 --- a/modules/core/include/opencv2/core/affine.hpp +++ b/modules/core/include/opencv2/core/affine.hpp @@ -48,6 +48,8 @@ #include +/*! @file */ + namespace cv { template @@ -429,6 +431,7 @@ cv::Affine3 cv::Affine3::cast() const return Affine3(matrix); } +/** @cond IGNORED */ template inline cv::Affine3 cv::operator*(const cv::Affine3& affine1, const cv::Affine3& affine2) { @@ -446,6 +449,7 @@ V cv::operator*(const cv::Affine3& affine, const V& v) r.z = m.val[8] * v.x + m.val[9] * v.y + m.val[10] * v.z + m.val[11]; return r; } +/** @endcond */ static inline cv::Vec3f cv::operator*(const cv::Affine3f& affine, const cv::Vec3f& v) diff --git a/modules/core/include/opencv2/core/core.hpp b/modules/core/include/opencv2/core/core.hpp index a0a7392799..dbd6bc74d1 100644 --- a/modules/core/include/opencv2/core/core.hpp +++ b/modules/core/include/opencv2/core/core.hpp @@ -716,9 +716,6 @@ public: }; -/*! - \typedef -*/ typedef Complex Complexf; typedef Complex Complexd; @@ -885,11 +882,6 @@ public: }; -/*! - \typedef - - shorter aliases for the most popular cv::Point_<>, cv::Size_<> and cv::Rect_<> specializations -*/ typedef Point_ Point2i; typedef Point2i Point; typedef Size_ Size2i; @@ -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 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: 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); //! 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, InputArray upperb, OutputArray dst); -//! compares elements of two arrays (dst = src1 src2) +//! compares elements of two arrays (dst = src1 \ src2) CV_EXPORTS_W void compare(InputArray src1, InputArray src2, OutputArray dst, int cmpop); //! computes per-element minimum of two arrays (dst = min(src1, src2)) 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, 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. - 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: \code @@ -3443,6 +3433,7 @@ public: void convertTo( SparseMat& m, int rtype, double alpha=1 ) const; //! 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 alpha The scale factor \param beta The optional delta added to the scaled values before the conversion diff --git a/modules/core/include/opencv2/core/gpumat.hpp b/modules/core/include/opencv2/core/gpumat.hpp index 193c9aa70b..68647d9bf1 100644 --- a/modules/core/include/opencv2/core/gpumat.hpp +++ b/modules/core/include/opencv2/core/gpumat.hpp @@ -512,6 +512,7 @@ namespace cv { namespace gpu return *this; } + /** @cond IGNORED */ template inline GpuMat::operator PtrStepSz() const { return PtrStepSz(rows, cols, (T*)data, step); @@ -531,6 +532,7 @@ namespace cv { namespace gpu { return PtrStep_(static_cast< DevMem2D_ >(*this)); } + /** @endcond */ inline GpuMat createContinuous(int rows, int cols, int type) { diff --git a/modules/core/include/opencv2/core/operations.hpp b/modules/core/include/opencv2/core/operations.hpp index 325b7ea003..7651982a0b 100644 --- a/modules/core/include/opencv2/core/operations.hpp +++ b/modules/core/include/opencv2/core/operations.hpp @@ -365,7 +365,7 @@ template inline double Matx<_Tp, m, n>::ddot(const M } - +/** @cond IGNORED */ template inline 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); return M; } +/** @endcond */ template inline Matx<_Tp,m,n> Matx<_Tp,m,n>::randu(_Tp a, _Tp b) diff --git a/modules/features2d/include/opencv2/features2d/features2d.hpp b/modules/features2d/include/opencv2/features2d/features2d.hpp index 02e65315e2..9769431463 100644 --- a/modules/features2d/include/opencv2/features2d/features2d.hpp +++ b/modules/features2d/include/opencv2/features2d/features2d.hpp @@ -415,7 +415,7 @@ public: * @param orientationNormalized enable orientation normalization * @param scaleNormalized enable scale normalization * @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 */ explicit FREAK( bool orientationNormalized = true, @@ -814,6 +814,8 @@ class CV_EXPORTS FastAdjuster: public AdjusterAdapter public: /**\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 min_thresh + * \param max_thresh */ FastAdjuster(int init_thresh=20, bool nonmax=true, int min_thresh=1, int max_thresh=200); diff --git a/modules/flann/include/opencv2/flann/dynamic_bitset.h b/modules/flann/include/opencv2/flann/dynamic_bitset.h index bfd39cea48..d795b5d6ed 100644 --- a/modules/flann/include/opencv2/flann/dynamic_bitset.h +++ b/modules/flann/include/opencv2/flann/dynamic_bitset.h @@ -57,14 +57,14 @@ namespace cvflann { class DynamicBitset { public: - /** @param default constructor + /** default constructor */ DynamicBitset() { } - /** @param only constructor we use in our code - * @param the size of the bitset (in bits) + /** only constructor we use in our code + * @param sz the size of the bitset (in bits) */ DynamicBitset(size_t sz) { @@ -87,7 +87,7 @@ public: return bitset_.empty(); } - /** @param set all the bits to 0 + /** set all the bits to 0 */ void reset() { @@ -95,7 +95,7 @@ public: } /** @brief set one bit to 0 - * @param + * @param index */ void reset(size_t index) { @@ -106,15 +106,15 @@ public: * 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 * other bits to 0 - * @param + * @param index */ void reset_block(size_t index) { bitset_[index / cell_bit_size_] = 0; } - /** @param resize the bitset so that it contains at least size bits - * @param size + /** resize the bitset so that it contains at least sz bits + * @param sz */ void resize(size_t sz) { @@ -122,7 +122,7 @@ public: 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 */ void set(size_t index) @@ -130,14 +130,14 @@ public: 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 { return size_; } - /** @param check if a bit is set + /** check if a bit is set * @param index the index of the bit to check * @return true if the bit is set */ diff --git a/modules/flann/include/opencv2/flann/lsh_table.h b/modules/flann/include/opencv2/flann/lsh_table.h index f6e68dc767..0defa52a77 100644 --- a/modules/flann/include/opencv2/flann/lsh_table.h +++ b/modules/flann/include/opencv2/flann/lsh_table.h @@ -152,9 +152,13 @@ public: * Create the mask and allocate the memory * @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 indices */ - LshTable(unsigned int /*feature_size*/, unsigned int /*key_size*/, std::vector & /*indices*/) + LshTable(unsigned int feature_size, unsigned int key_size, std::vector & indices) { + (void)feature_size; + (void)key_size; + (void)indices; std::cerr << "LSH is not implemented for that type" << std::endl; assert(0); } diff --git a/modules/flann/include/opencv2/flann/result_set.h b/modules/flann/include/opencv2/flann/result_set.h index 3adad46596..97500195a2 100644 --- a/modules/flann/include/opencv2/flann/result_set.h +++ b/modules/flann/include/opencv2/flann/result_set.h @@ -449,7 +449,7 @@ class RadiusUniqueResultSet : public UniqueResultSet { public: /** Constructor - * @param capacity the number of neighbors to store at max + * @param radius the maximum distance of a neighbor */ RadiusUniqueResultSet(DistanceType radius) : radius_(radius) @@ -509,6 +509,7 @@ class KNNRadiusUniqueResultSet : public KNNUniqueResultSet public: /** Constructor * @param capacity the number of neighbors to store at max + * @param radius the maximum distance of a neighbor */ KNNRadiusUniqueResultSet(unsigned int capacity, DistanceType radius) { diff --git a/modules/gpu/include/opencv2/gpu/gpu.hpp b/modules/gpu/include/opencv2/gpu/gpu.hpp index 0ab0fb1cd9..de16982627 100644 --- a/modules/gpu/include/opencv2/gpu/gpu.hpp +++ b/modules/gpu/include/opencv2/gpu/gpu.hpp @@ -537,7 +537,7 @@ CV_EXPORTS void log(const GpuMat& a, GpuMat& b, Stream& stream = Stream::Null()) //! supports all, except depth == CV_64F CV_EXPORTS void pow(const GpuMat& src, double power, GpuMat& dst, Stream& stream = Stream::Null()); -//! compares elements of two arrays (c = a b) +//! compares elements of two arrays (c = a \ 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, Scalar sc, GpuMat& c, int cmpop, Stream& stream = Stream::Null()); @@ -2264,6 +2264,7 @@ public: * model. * @param frame Input frame * @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 */ void operator ()(const GpuMat& frame, GpuMat& fgmask, float learningRate = -1.0f, Stream& stream = Stream::Null()); diff --git a/modules/video/include/opencv2/video/background_segm.hpp b/modules/video/include/opencv2/video/background_segm.hpp index 71dbe55fa2..d2d068c60f 100644 --- a/modules/video/include/opencv2/video/background_segm.hpp +++ b/modules/video/include/opencv2/video/background_segm.hpp @@ -218,6 +218,7 @@ public: * model. * @param image Input image * @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); diff --git a/modules/video/include/opencv2/video/tracking.hpp b/modules/video/include/opencv2/video/tracking.hpp index 48e84c8307..f09be80647 100644 --- a/modules/video/include/opencv2/video/tracking.hpp +++ b/modules/video/include/opencv2/video/tracking.hpp @@ -258,7 +258,7 @@ CV_EXPORTS_W int meanShift( InputArray probImage, CV_OUT CV_IN_OUT Rect& window, /*! 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 KalmanFilter::measurementMatrix to get the extended Kalman filter functionality. */