Skip to content

Commit ee1cbe6

Browse files
mshabuninklatism
authored andcommitted
Merge pull request opencv#25042 from mshabunin:doc-upgrade
Documentation transition to fresh Doxygen opencv#25042 * current Doxygen version is 1.10, but we will use 1.9.8 for now due to issue with snippets (doxygen/doxygen#10584) * Doxyfile adapted to new version * MathJax updated to 3.x * `@relates` instructions removed temporarily due to issue in Doxygen (to avoid warnings) * refactored matx.hpp - extracted matx.inl.hpp * opencv_contrib - opencv/opencv_contrib#3638
1 parent c85513f commit ee1cbe6

File tree

49 files changed

+1746
-1640
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1746
-1640
lines changed

CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -575,8 +575,6 @@ if(OPENCV_DISABLE_FILESYSTEM_SUPPORT)
575575
add_definitions(-DOPENCV_HAVE_FILESYSTEM_SUPPORT=0)
576576
endif()
577577

578-
set(OPENCV_MATHJAX_RELPATH "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0" CACHE STRING "URI to a MathJax installation")
579-
580578
# ----------------------------------------------------------------------------
581579
# Get actual OpenCV version number from sources
582580
# ----------------------------------------------------------------------------

doc/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ endif()
1616

1717
find_package(Doxygen)
1818
if(DOXYGEN_FOUND)
19+
if (DOXYGEN_VERSION VERSION_LESS 1.9.8)
20+
message(WARNING "Found doxygen ${DOXYGEN_VERSION}, version 1.9.8 is used for testing, there is
21+
a chance your documentation will look different or have some limitations.")
22+
endif()
1923
add_custom_target(doxygen)
2024

2125
# not documented modules list
@@ -191,6 +195,8 @@ if(DOXYGEN_FOUND)
191195
list(APPEND CMAKE_DOXYGEN_HTML_FILES "${CMAKE_CURRENT_SOURCE_DIR}/tutorial-utils.js")
192196
string(REPLACE ";" " \\\n" CMAKE_DOXYGEN_HTML_FILES "${CMAKE_DOXYGEN_HTML_FILES}")
193197

198+
set(OPENCV_MATHJAX_RELPATH "https://cdn.jsdelivr.net/npm/[email protected]" CACHE STRING "URI to a MathJax installation")
199+
194200
set(OPENCV_DOCS_DOT_PATH "" CACHE PATH "Doxygen/DOT_PATH value")
195201
set(CMAKECONFIG_DOT_PATH "${OPENCV_DOCS_DOT_PATH}")
196202

doc/Doxyfile.in

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ PROJECT_NAME = OpenCV
33
PROJECT_NUMBER = @OPENCV_VERSION@
44
PROJECT_BRIEF = "Open Source Computer Vision"
55
PROJECT_LOGO = @CMAKE_CURRENT_SOURCE_DIR@/opencv-logo-small.png
6+
#PROJECT_ICON =
67
OUTPUT_DIRECTORY = @CMAKE_DOXYGEN_OUTPUT_PATH@
78
CREATE_SUBDIRS = YES
9+
CREATE_SUBDIRS_LEVEL = 8
10+
ALLOW_UNICODE_NAMES = NO
811
OUTPUT_LANGUAGE = English
912
BRIEF_MEMBER_DESC = YES
1013
REPEAT_BRIEF = YES
@@ -26,8 +29,10 @@ STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@/modules @CMAKE_DOXYGEN_INCLUDE_ROOTS
2629
STRIP_FROM_INC_PATH = @CMAKE_DOXYGEN_INCLUDE_ROOTS@
2730
SHORT_NAMES = NO
2831
JAVADOC_AUTOBRIEF = NO
32+
JAVADOC_BANNER = NO
2933
QT_AUTOBRIEF = NO
3034
MULTILINE_CPP_IS_BRIEF = NO
35+
PYTHON_DOCSTRING = YES
3136
INHERIT_DOCS = YES
3237
SEPARATE_MEMBER_PAGES = NO
3338
TAB_SIZE = 4
@@ -43,33 +48,43 @@ OPTIMIZE_OUTPUT_FOR_C = NO
4348
OPTIMIZE_OUTPUT_JAVA = NO
4449
OPTIMIZE_FOR_FORTRAN = NO
4550
OPTIMIZE_OUTPUT_VHDL = NO
51+
OPTIMIZE_OUTPUT_SLICE = NO
4652
EXTENSION_MAPPING =
4753
MARKDOWN_SUPPORT = YES
54+
TOC_INCLUDE_HEADINGS = 5
55+
MARKDOWN_ID_STYLE = DOXYGEN
4856
AUTOLINK_SUPPORT = YES
4957
BUILTIN_STL_SUPPORT = YES
5058
CPP_CLI_SUPPORT = NO
5159
SIP_SUPPORT = NO
5260
IDL_PROPERTY_SUPPORT = YES
5361
DISTRIBUTE_GROUP_DOC = NO
62+
GROUP_NESTED_COMPOUNDS = NO
5463
SUBGROUPING = YES
5564
INLINE_GROUPED_CLASSES = NO
5665
INLINE_SIMPLE_STRUCTS = NO
5766
TYPEDEF_HIDES_STRUCT = YES
5867
LOOKUP_CACHE_SIZE = 0
68+
NUM_PROC_THREADS = 1
69+
TIMESTAMP = YES
5970
EXTRACT_ALL = YES
6071
EXTRACT_PRIVATE = NO
72+
EXTRACT_PRIV_VIRTUAL = NO
6173
EXTRACT_PACKAGE = NO
6274
EXTRACT_STATIC = YES
6375
EXTRACT_LOCAL_CLASSES = NO
6476
EXTRACT_LOCAL_METHODS = NO
6577
EXTRACT_ANON_NSPACES = NO
78+
RESOLVE_UNNAMED_PARAMS = YES
6679
HIDE_UNDOC_MEMBERS = NO
6780
HIDE_UNDOC_CLASSES = NO
6881
HIDE_FRIEND_COMPOUNDS = NO
6982
HIDE_IN_BODY_DOCS = NO
7083
INTERNAL_DOCS = NO
7184
CASE_SENSE_NAMES = YES
7285
HIDE_SCOPE_NAMES = NO
86+
HIDE_COMPOUND_REFERENCE= NO
87+
SHOW_HEADERFILE = YES
7388
SHOW_INCLUDE_FILES = YES
7489
SHOW_GROUPED_MEMB_INC = YES
7590
FORCE_LOCAL_INCLUDES = NO
@@ -96,11 +111,16 @@ QUIET = YES
96111
WARNINGS = YES
97112
WARN_IF_UNDOCUMENTED = YES
98113
WARN_IF_DOC_ERROR = YES
114+
WARN_IF_INCOMPLETE_DOC = YES
99115
WARN_NO_PARAMDOC = NO
116+
WARN_IF_UNDOC_ENUM_VAL = NO
117+
WARN_AS_ERROR = NO
100118
WARN_FORMAT = "$file:$line: $text"
119+
WARN_LINE_FORMAT = "at line $line of file $file"
101120
WARN_LOGFILE =
102121
INPUT = @CMAKE_DOXYGEN_INPUT_LIST@
103122
INPUT_ENCODING = UTF-8
123+
INPUT_FILE_ENCODING =
104124
FILE_PATTERNS =
105125
RECURSIVE = YES
106126
EXCLUDE = @CMAKE_DOXYGEN_EXCLUDE_LIST@
@@ -125,8 +145,11 @@ REFERENCES_LINK_SOURCE = YES
125145
SOURCE_TOOLTIPS = YES
126146
USE_HTAGS = NO
127147
VERBATIM_HEADERS = NO
148+
CLANG_ASSISTED_PARSING = NO
149+
CLANG_ADD_INC_PATHS = YES
150+
CLANG_OPTIONS =
151+
CLANG_DATABASE_PATH =
128152
ALPHABETICAL_INDEX = YES
129-
COLS_IN_ALPHA_INDEX = 5
130153
IGNORE_PREFIX =
131154
GENERATE_HTML = YES
132155
HTML_OUTPUT = html
@@ -136,14 +159,19 @@ HTML_FOOTER = @CMAKE_CURRENT_SOURCE_DIR@/footer.html
136159
HTML_STYLESHEET =
137160
HTML_EXTRA_STYLESHEET = @CMAKE_CURRENT_SOURCE_DIR@/stylesheet.css
138161
HTML_EXTRA_FILES = @CMAKE_DOXYGEN_HTML_FILES@
162+
HTML_COLORSTYLE = LIGHT
139163
HTML_COLORSTYLE_HUE = 220
140164
HTML_COLORSTYLE_SAT = 100
141165
HTML_COLORSTYLE_GAMMA = 80
142-
HTML_TIMESTAMP = YES
166+
HTML_DYNAMIC_MENUS = YES
143167
HTML_DYNAMIC_SECTIONS = NO
168+
HTML_CODE_FOLDING = YES
169+
#HTML_COPY_CLIPBOARD = YES
170+
#HTML_PROJECT_COOKIE =
144171
HTML_INDEX_NUM_ENTRIES = 100
145172
GENERATE_DOCSET = NO
146173
DOCSET_FEEDNAME = "Doxygen generated docs"
174+
DOCSET_FEEDURL =
147175
DOCSET_BUNDLE_ID = org.doxygen.Project
148176
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
149177
DOCSET_PUBLISHER_NAME = Publisher
@@ -154,6 +182,7 @@ GENERATE_CHI = NO
154182
CHM_INDEX_ENCODING =
155183
BINARY_TOC = NO
156184
TOC_EXPAND = NO
185+
SITEMAP_URL =
157186
GENERATE_QHP = @CMAKE_DOXYGEN_GENERATE_QHP@
158187
QCH_FILE = ../opencv-@[email protected]
159188
QHP_NAMESPACE = org.opencv.@OPENCV_VERSION@
@@ -166,15 +195,19 @@ GENERATE_ECLIPSEHELP = NO
166195
ECLIPSE_DOC_ID = org.doxygen.Project
167196
DISABLE_INDEX = NO
168197
GENERATE_TREEVIEW = NO
198+
FULL_SIDEBAR = NO
169199
ENUM_VALUES_PER_LINE = 1
170200
TREEVIEW_WIDTH = 250
171201
EXT_LINKS_IN_WINDOW = YES
202+
OBFUSCATE_EMAILS = YES
203+
HTML_FORMULA_FORMAT = svg
172204
FORMULA_FONTSIZE = 14
173-
FORMULA_TRANSPARENT = YES
205+
FORMULA_MACROFILE =
174206
USE_MATHJAX = YES
175-
MATHJAX_FORMAT = HTML-CSS
207+
MATHJAX_VERSION = MathJax_3
208+
MATHJAX_FORMAT = chtml
176209
MATHJAX_RELPATH = @OPENCV_MATHJAX_RELPATH@
177-
MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
210+
MATHJAX_EXTENSIONS = ams
178211
MATHJAX_CODEFILE = @CMAKE_CURRENT_SOURCE_DIR@/mymath.js
179212
SEARCHENGINE = YES
180213
SERVER_BASED_SEARCH = NO
@@ -187,18 +220,20 @@ GENERATE_LATEX = NO
187220
LATEX_OUTPUT = latex
188221
LATEX_CMD_NAME = latex
189222
MAKEINDEX_CMD_NAME = makeindex
223+
LATEX_MAKEINDEX_CMD = makeindex
190224
COMPACT_LATEX = NO
191225
PAPER_TYPE = a4
192226
EXTRA_PACKAGES = mymath
193227
LATEX_HEADER =
194228
LATEX_FOOTER =
229+
LATEX_EXTRA_STYLESHEET =
195230
LATEX_EXTRA_FILES =
196231
PDF_HYPERLINKS = YES
197232
USE_PDFLATEX = YES
198233
LATEX_BATCHMODE = NO
199234
LATEX_HIDE_INDICES = NO
200-
LATEX_SOURCE_CODE = NO
201235
LATEX_BIB_STYLE = plain
236+
LATEX_EMOJI_DIRECTORY =
202237
GENERATE_RTF = NO
203238
RTF_OUTPUT = rtf
204239
COMPACT_RTF = NO
@@ -208,13 +243,18 @@ RTF_EXTENSIONS_FILE =
208243
GENERATE_MAN = NO
209244
MAN_OUTPUT = man
210245
MAN_EXTENSION = .3
246+
MAN_SUBDIR =
211247
MAN_LINKS = NO
212248
GENERATE_XML = NO
213249
XML_OUTPUT = xml
214250
XML_PROGRAMLISTING = YES
251+
XML_NS_MEMB_FILE_SCOPE = NO
215252
GENERATE_DOCBOOK = NO
216253
DOCBOOK_OUTPUT = docbook
217254
GENERATE_AUTOGEN_DEF = NO
255+
GENERATE_SQLITE3 = NO
256+
SQLITE3_OUTPUT = sqlite3
257+
SQLITE3_RECREATE_DB = YES
218258
GENERATE_PERLMOD = NO
219259
PERLMOD_LATEX = NO
220260
PERLMOD_PRETTY = YES
@@ -272,35 +312,40 @@ GENERATE_TAGFILE = @CMAKE_DOXYGEN_OUTPUT_PATH@/html/opencv.tag
272312
ALLEXTERNALS = NO
273313
EXTERNAL_GROUPS = YES
274314
EXTERNAL_PAGES = YES
275-
CLASS_DIAGRAMS = YES
276-
DIA_PATH =
277315
HIDE_UNDOC_RELATIONS = NO
278316
HAVE_DOT = @CMAKECONFIG_HAVE_DOT@
279317
DOT_NUM_THREADS = 0
280-
DOT_FONTNAME = Helvetica
281-
DOT_FONTSIZE = 10
282318
DOT_FONTPATH =
319+
DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10"
320+
DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10"
321+
DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4"
283322
CLASS_GRAPH = YES
284323
COLLABORATION_GRAPH = YES
285-
GROUP_GRAPHS = YES
324+
GROUP_GRAPHS = NO
286325
UML_LOOK = YES
287326
UML_LIMIT_NUM_FIELDS = 10
327+
DOT_UML_DETAILS = NO
328+
DOT_WRAP_THRESHOLD = 17
288329
TEMPLATE_RELATIONS = YES
289330
INCLUDE_GRAPH = YES
290331
INCLUDED_BY_GRAPH = YES
291332
CALL_GRAPH = YES
292333
CALLER_GRAPH = NO
293334
GRAPHICAL_HIERARCHY = YES
294335
DIRECTORY_GRAPH = YES
336+
DIR_GRAPH_MAX_DEPTH = 1
295337
DOT_IMAGE_FORMAT = @CMAKECONFIG_DOT_IMAGE_FORMAT@
296338
INTERACTIVE_SVG = @CMAKECONFIG_INTERACTIVE_SVG@
297339
DOT_PATH = @CMAKECONFIG_DOT_PATH@
298340
DOTFILE_DIRS =
299-
MSCFILE_DIRS =
300341
DIAFILE_DIRS =
301-
DOT_GRAPH_MAX_NODES = 50
342+
PLANTUML_JAR_PATH =
343+
PLANTUML_CFG_FILE =
344+
PLANTUML_INCLUDE_PATH =
345+
DOT_GRAPH_MAX_NODES = 250
302346
MAX_DOT_GRAPH_DEPTH = 0
303-
DOT_TRANSPARENT = NO
304347
DOT_MULTI_TARGETS = NO
305348
GENERATE_LEGEND = YES
306349
DOT_CLEANUP = YES
350+
MSCGEN_TOOL =
351+
MSCFILE_DIRS =

doc/js_tutorials/js_setup/js_nodejs/js_nodejs.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ function installDOM(){
336336
- Make sure the files `aarcascade_frontalface_default.xml` and `haarcascade_eye.xml` are present in project's directory. They can be obtained from [OpenCV sources](https://github.com/opencv/opencv/tree/4.x/data/haarcascades).
337337
- Make sure a sample image file `lena.jpg` exists in project's directory. It should display people's faces for this example to make sense. The following image is known to work:
338338

339-
![image](lena.jpg)
339+
![image](js_assets/lena.jpg)
340340

341341
The following command should generate the file `output3.jpg`:
342342

doc/mymath.js

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
//<![CDATA[
2-
MathJax.Hub.Config(
3-
{
4-
TeX: {
5-
Macros: {
6-
matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
7-
fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
8-
forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
9-
forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
10-
vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
11-
vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
12-
cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
13-
distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
14-
distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
15-
hdotsfor: ["\\dots", 1],
16-
mathbbm: ["\\mathbb{#1}", 1],
17-
bordermatrix: ["\\matrix{#1}", 1]
18-
}
19-
}
20-
}
21-
);
2+
window.MathJax = {
3+
tex: {
4+
macros: {
5+
matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
6+
fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
7+
forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
8+
forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
9+
vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
10+
vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
11+
cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
12+
distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
13+
distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
14+
hdotsfor: ["\\dots", 1],
15+
mathbbm: ["\\mathbb{#1}", 1],
16+
bordermatrix: ["\\matrix{#1}", 1]
17+
}
18+
}
19+
};
2220
//]]>

doc/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.markdown

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -79,62 +79,38 @@ Building OpenCV from source
7979
-# Extract it to a folder, opencv and create a new folder build in it.
8080
-# Open CMake-gui (*Start \> All Programs \> CMake-gui*)
8181
-# Fill the fields as follows (see the image below):
82-
8382
-# Click on **Browse Source...** and locate the opencv folder.
84-
8583
-# Click on **Browse Build...** and locate the build folder we created.
86-
8784
-# Click on **Configure**.
88-
8985
![image](images/Capture1.jpg)
90-
9186
-# It will open a new window to select the compiler. Choose appropriate compiler (here,
9287
Visual Studio 11) and click **Finish**.
93-
9488
![image](images/Capture2.png)
95-
9689
-# Wait until analysis is finished.
97-
9890
-# You will see all the fields are marked in red. Click on the **WITH** field to expand it. It
9991
decides what extra features you need. So mark appropriate fields. See the below image:
100-
10192
![image](images/Capture3.png)
102-
10393
-# Now click on **BUILD** field to expand it. First few fields configure the build method. See the
10494
below image:
105-
10695
![image](images/Capture5.png)
107-
10896
-# Remaining fields specify what modules are to be built. Since GPU modules are not yet supported
10997
by OpenCV-Python, you can completely avoid it to save time (But if you work with them, keep it
11098
there). See the image below:
111-
11299
![image](images/Capture6.png)
113-
114100
-# Now click on **ENABLE** field to expand it. Make sure **ENABLE_SOLUTION_FOLDERS** is unchecked
115101
(Solution folders are not supported by Visual Studio Express edition). See the image below:
116-
117102
![image](images/Capture7.png)
118-
119103
-# Also make sure that in the **PYTHON** field, everything is filled. (Ignore
120104
PYTHON_DEBUG_LIBRARY). See image below:
121-
122105
![image](images/Capture80.png)
123-
124106
-# Finally click the **Generate** button.
125-
126107
-# Now go to our **opencv/build** folder. There you will find **OpenCV.sln** file. Open it with
127108
Visual Studio.
128-
129109
-# Check build mode as **Release** instead of **Debug**.
130-
131110
-# In the solution explorer, right-click on the **Solution** (or **ALL_BUILD**) and build it. It
132111
will take some time to finish.
133-
134112
-# Again, right-click on **INSTALL** and build it. Now OpenCV-Python will be installed.
135-
136113
![image](images/Capture8.png)
137-
138114
-# Open Python IDLE and enter 'import cv2 as cv'. If no error, it is installed correctly.
139115

140116
@note We have installed with no other support like TBB, Eigen, Qt, Documentation etc. It would be

0 commit comments

Comments
 (0)