Doxygen?是具有许多强大功能的文档生成系统,例如:
OpenCV 库现有文档已转换为 doxygen 格式。
请查看官方下载和安装页面。一些 linux 发行版也可以提供 doxygen 软件包。
注意
必须在运行 cmake 之前安装?Pylint?才能测试 Python 代码。您可以使用系统的包管理器或使用 pip 进行安装:注意
这些说明是特定于 OpenCV 库文档的,其他项目可以使用不同的布局方案和文档协议。
整个文档是从许多不同的地方收集的:
以下方案表示?opencv?存储库的常见文档位置:
注意
自动代码解析器查找所有头文件(“.h, .hpp”,但“.inl.hpp; .impl.hpp;_detail.hpp“) 包含在文件夹及其子文件夹中。一些特定于模块的指令(组定义)和文档应该放在?“include/opencv2/<module-name>.hpp”?文件中。
您可以将 C++ 模板实现和专用化放在 dexe 忽略的单独文件(“.impl.hpp”)中。
src?子文件夹中的文件不会被解析,因为文档主要面向库用户,而不是开发人员。但是,仍然可以通过自定义cmake脚本(doc/CMakeLists.txt)中的处理文件列表和配置文件(doc/Doxyfile.in)中的doxygen选项来生成完整的文档。
从 3.0 版本开始,所有新模块都放在opencv_contrib存储库中,它的布局略有不同:
要为函数、类和其他实体添加文档,只需在其定义之前插入特殊注释即可。喜欢这个:
<span style="background-color:#fbfcfd"><span style="color:#000000">/** @brief Calculates the exponent of every array element.
The function exp calculates the exponent of every element of the input array:
\f[ \texttt{dst} [I] = e^{ src(I) } \f]
The maximum relative error is about 7e-6 for single-precision input and less than 1e-10 for
double-precision input. Currently, the function converts denormalized values to zeros on output.
Special values (NaN, Inf) are not handled.
@param src input array.
@param dst output array of the same size and type as src.
@sa log , cartToPolar , polarToCart , phase , pow , sqrt , magnitude
*/
CV_EXPORTS_W void exp(InputArray src, OutputArray dst);
</span></span>
在这里你可以看到:
<span style="background-color:#fbfcfd">/** ... */ </span>
brief
<span style="background-color:#fbfcfd">@brief </span>
f[
f]
<span style="background-color:#fbfcfd">\f[ ... \f] </span>
param
<span style="background-color:#fbfcfd">@param </span>
sa
<span style="background-color:#fbfcfd">@sa </span>
生成的参考项如下所示:
“更多...”链接将带您进入函数文档:
单行短注释可以使用不同的注释语法:
<span style="background-color:#fbfcfd"><span style="color:#000000">//! type of line
enum LineTypes {
FILLED = -1,
LINE_4 = 4, //!< 4-connected line
LINE_8 = 8, //!< 8-connected line
LINE_AA = 16 //!< antialiased line
};
</span></span>
这里:
<span style="background-color:#fbfcfd">//! </span>
<
<span style="background-color:#fbfcfd">//!< </span>
生成的文档块如下所示:
Doxygen 命令以 或 符号开头:@
\
<span style="background-color:#fbfcfd"><span style="color:#000000">@brief ...
or
\brief ...
</span></span>
Doxygen 注释可以有不同的形式:
<span style="background-color:#fbfcfd"><span style="color:#000000">C-style:
/** ... */
or
/*! ... */
C++-style
//! ...
or
/// ...
Lines can start with '*':
/**
* ...
* ...
*/
Can be placed after documented entity:
//!< ...
/**< ... */
</span></span>
要结束段落,请插入空行或任何开始新段落的命令:
<span style="background-color:#fbfcfd"><span style="color:#000000">@brief brief description paragraph
brief continues
new paragraph
@note new note paragraph
note paragraph continues
another paragraph
paragraph continues
</span></span>
页面、锚点、组和其他命名实体在整个项目中应具有唯一名称。最好在此类标识符前面加上模块名称:
<span style="background-color:#fbfcfd"><span style="color:#000000">@page core_explanation_1 Usage explanation
@defgroup imgproc_transform Image transformations
@anchor mymodule_interesting_note
</span></span>
Doxygen 支持带有一些扩展的 Markdown 格式。简短的语法参考如下,有关详细信息,请访问?Markdown 支持。
<span style="background-color:#fbfcfd"><span style="color:#000000">Bulleted:
- item1
- item2
Numbered:
1. item1
2. item2
or
-# item1
-# item2
</span></span>
<span style="background-color:#fbfcfd"><span style="color:#000000">_italic_
__bold__
use html in complex cases:
<em>"path/to/file"</em>
</span></span>
<span style="background-color:#fbfcfd"><span style="color:#000000">explicit link:
[OpenCV main site](http://opencv.org)
automatic links:
<http://opencv.org>
or even:
http://opencv.org
</span></span>
<span style="background-color:#fbfcfd"><span style="color:#000000">![image caption](image path)
</span></span>
<span style="background-color:#fbfcfd"><span style="color:#000000">Level1
======
Level2
------
### Level3
#### Level4
</span></span>
您可以为任何标头分配唯一标识符,以便从其他位置引用它。
<span style="background-color:#fbfcfd"><span style="color:#000000">Header {#some_unique_identifier}
------
...
See @ref some_unique_identifier for details
</span></span>
每个页面的开头都应有额外的 Level1 标题,其中包含页面标题和标识符:
<span style="background-color:#fbfcfd"><span style="color:#000000">Writing documentation for OpenCV {#tutorial_documentation}
================================
</span></span>
doxygen 文档中的示例:
<span style="background-color:#fbfcfd"><span style="color:#000000">First Header | Second Header
------------- | -------------
Content Cell | Content Cell
Content Cell | Content Cell</span></span>