Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
dce629d0
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
dce629d0
编写于
10月 30, 2014
作者:
V
Vadim Pisarevsky
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3343 from mshabunin:doxygen-docs
上级
e19a12f6
ba5f343c
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
519 addition
and
185 deletion
+519
-185
CMakeLists.txt
CMakeLists.txt
+6
-0
doc/CMakeLists.txt
doc/CMakeLists.txt
+60
-28
doc/Doxyfile.in
doc/Doxyfile.in
+217
-70
doc/DoxygenLayout.xml
doc/DoxygenLayout.xml
+191
-0
doc/opencv-logo-small.png
doc/opencv-logo-small.png
+0
-0
modules/core/include/opencv2/core.hpp
modules/core/include/opencv2/core.hpp
+3
-3
modules/core/include/opencv2/core/affine.hpp
modules/core/include/opencv2/core/affine.hpp
+4
-0
modules/core/include/opencv2/core/base.hpp
modules/core/include/opencv2/core/base.hpp
+6
-4
modules/core/include/opencv2/core/cuda.inl.hpp
modules/core/include/opencv2/core/cuda.inl.hpp
+2
-0
modules/core/include/opencv2/core/mat.hpp
modules/core/include/opencv2/core/mat.hpp
+9
-8
modules/core/include/opencv2/core/matx.hpp
modules/core/include/opencv2/core/matx.hpp
+2
-3
modules/core/include/opencv2/core/types.hpp
modules/core/include/opencv2/core/types.hpp
+0
-51
modules/flann/include/opencv2/flann/dynamic_bitset.h
modules/flann/include/opencv2/flann/dynamic_bitset.h
+11
-11
modules/flann/include/opencv2/flann/lsh_table.h
modules/flann/include/opencv2/flann/lsh_table.h
+3
-1
modules/flann/include/opencv2/flann/result_set.h
modules/flann/include/opencv2/flann/result_set.h
+2
-1
modules/imgproc/include/opencv2/imgproc.hpp
modules/imgproc/include/opencv2/imgproc.hpp
+2
-4
modules/video/include/opencv2/video/tracking.hpp
modules/video/include/opencv2/video/tracking.hpp
+1
-1
未找到文件。
CMakeLists.txt
浏览文件 @
dce629d0
...
...
@@ -458,8 +458,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 ---
...
...
@@ -1071,6 +1076,7 @@ if(BUILD_DOCS)
status
(
" Sphinx:"
HAVE_SPHINX THEN
"
${
SPHINX_BUILD
}
(ver
${
SPHINX_VERSION
}
)"
ELSE NO
)
status
(
" PdfLaTeX compiler:"
PDFLATEX_COMPILER THEN
"
${
PDFLATEX_COMPILER
}
"
ELSE NO
)
status
(
" PlantUML:"
PLANTUML THEN
"
${
PLANTUML
}
"
ELSE NO
)
status
(
" Doxygen:"
HAVE_DOXYGEN THEN
"YES (
${
DOXYGEN_BUILD
}
)"
ELSE NO
)
endif
()
# ========================== samples and tests ==========================
...
...
doc/CMakeLists.txt
浏览文件 @
dce629d0
#
#
-----------------------
# 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 imgcodecs videoio highgui video calib3d features2d objdetect ml flann photo stitching
)
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
""
)
...
...
@@ -103,7 +100,6 @@ if(BUILD_DOCS AND HAVE_SPHINX)
if
(
PDFLATEX_COMPILER
)
add_custom_target
(
docs
COMMAND
${
SPHINX_BUILD
}
${
BUILD_PLANTUML
}
-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_DEFAULT_EXECUTABLE
}
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/patch_refman_latex.py"
opencv2refman.tex
COMMAND
${
PYTHON_DEFAULT_EXECUTABLE
}
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/patch_refman_latex.py"
opencv2manager.tex
...
...
@@ -147,12 +143,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
)
doc/Doxyfile.in
浏览文件 @
dce629d0
# 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= \
__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
doc/DoxygenLayout.xml
0 → 100644
浏览文件 @
dce629d0
<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>
doc/opencv-logo-small.png
0 → 100644
浏览文件 @
dce629d0
此差异由.gitattributes 抑制。
modules/core/include/opencv2/core.hpp
浏览文件 @
dce629d0
...
...
@@ -102,10 +102,10 @@ public:
By default the function prints information about the error to stderr,
then it either stops if setBreakOnError() had been called before or raises the exception.
It is possible to alternate error processing by using redirectError().
\param exc the exception raisen.
\todo drop this version
*/
//TODO: drop this version
CV_EXPORTS
void
error
(
const
Exception
&
exc
);
...
...
@@ -332,7 +332,7 @@ CV_EXPORTS_W void absdiff(InputArray src1, InputArray src2, OutputArray dst);
CV_EXPORTS_W
void
inRange
(
InputArray
src
,
InputArray
lowerb
,
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
);
//! computes per-element minimum of two arrays (dst = min(src1, src2))
...
...
modules/core/include/opencv2/core/affine.hpp
浏览文件 @
dce629d0
...
...
@@ -48,6 +48,8 @@
#include <opencv2/core.hpp>
/*! @file */
namespace
cv
{
template
<
typename
T
>
...
...
@@ -429,6 +431,7 @@ cv::Affine3<Y> cv::Affine3<T>::cast() const
return
Affine3
<
Y
>
(
matrix
);
}
/** @cond IGNORED */
template
<
typename
T
>
inline
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)
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
)
...
...
modules/core/include/opencv2/core/base.hpp
浏览文件 @
dce629d0
...
...
@@ -235,13 +235,15 @@ enum {
#define CV_SUPPRESS_DEPRECATED_END
#endif
//! Signals an error and raises the exception.
/*!
/*! @brief Signals an error and raises the exception.
By default the function prints information about the error to stderr,
then it either stops if setBreakOnError() had been called before or raises the exception.
It is possible to alternate error processing by using redirectError().
\param exc the exception raisen.
@param _code - error code @see CVStatus
@param _err - error description
@param _func - function name. Available only when the compiler supports getting it
@param _file - source file name where the error has occured
@param _line - line number in the source file where the error has occured
*/
CV_EXPORTS
void
error
(
int
_code
,
const
String
&
_err
,
const
char
*
_func
,
const
char
*
_file
,
int
_line
);
...
...
modules/core/include/opencv2/core/cuda.inl.hpp
浏览文件 @
dce629d0
...
...
@@ -224,6 +224,7 @@ const _Tp* GpuMat::ptr(int y) const
return
(
const
_Tp
*
)
ptr
(
y
);
}
/** @cond IGNORED */
template
<
class
T
>
inline
GpuMat
::
operator
PtrStepSz
<
T
>
()
const
{
...
...
@@ -235,6 +236,7 @@ GpuMat::operator PtrStep<T>() const
{
return
PtrStep
<
T
>
((
T
*
)
data
,
step
);
}
/** @endcond */
inline
GpuMat
GpuMat
::
row
(
int
y
)
const
...
...
modules/core/include/opencv2/core/mat.hpp
浏览文件 @
dce629d0
...
...
@@ -578,8 +578,6 @@ protected:
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()
...
...
@@ -962,9 +960,8 @@ protected:
\endcode
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
same thing and run at the same speed, but the latter is certainly shorter:
access operations and if you know matrix type at compile time. Note that cv::Mat::at and
cv::Mat::operator() do absolutely the same thing and run at the same speed, but the latter is certainly shorter:
\code
Mat_<double> M(20,20);
...
...
@@ -1514,9 +1511,13 @@ 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 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
@param [out] m - output matrix; if it does not have a proper size or type before the operation,
it is reallocated
@param [in] rtype – desired output matrix type or, rather, the depth since the number of channels
are the same as the input has; if rtype is negative, the output matrix will have the
same type as the input.
@param [in] alpha – optional scale factor
@param [in] beta – optional delta added to the scaled values
*/
void
convertTo
(
Mat
&
m
,
int
rtype
,
double
alpha
=
1
,
double
beta
=
0
)
const
;
...
...
modules/core/include/opencv2/core/matx.hpp
浏览文件 @
dce629d0
...
...
@@ -185,9 +185,6 @@ public:
_Tp
val
[
m
*
n
];
//< matrix elements
};
/*!
\typedef
*/
typedef
Matx
<
float
,
1
,
2
>
Matx12f
;
typedef
Matx
<
double
,
1
,
2
>
Matx12d
;
typedef
Matx
<
float
,
1
,
3
>
Matx13f
;
...
...
@@ -631,6 +628,7 @@ double Matx<_Tp, m, n>::ddot(const Matx<_Tp, m, n>& M) const
return
s
;
}
/** @cond IGNORED */
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
)
{
...
...
@@ -639,6 +637,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
<
typename
_Tp
,
int
m
,
int
n
>
template
<
typename
T2
>
inline
Matx
<
_Tp
,
m
,
n
>::
operator
Matx
<
T2
,
m
,
n
>
()
const
...
...
modules/core/include/opencv2/core/types.hpp
浏览文件 @
dce629d0
...
...
@@ -84,15 +84,9 @@ public:
_Tp
re
,
im
;
//< the real and the imaginary parts
};
/*!
\typedef
*/
typedef
Complex
<
float
>
Complexf
;
typedef
Complex
<
double
>
Complexd
;
/*!
traits
*/
template
<
typename
_Tp
>
class
DataType
<
Complex
<
_Tp
>
>
{
public:
...
...
@@ -151,17 +145,11 @@ public:
_Tp
x
,
y
;
//< the point coordinates
};
/*!
\typedef
*/
typedef
Point_
<
int
>
Point2i
;
typedef
Point_
<
float
>
Point2f
;
typedef
Point_
<
double
>
Point2d
;
typedef
Point2i
Point
;
/*!
traits
*/
template
<
typename
_Tp
>
class
DataType
<
Point_
<
_Tp
>
>
{
public:
...
...
@@ -219,16 +207,10 @@ public:
_Tp
x
,
y
,
z
;
//< the point coordinates
};
/*!
\typedef
*/
typedef
Point3_
<
int
>
Point3i
;
typedef
Point3_
<
float
>
Point3f
;
typedef
Point3_
<
double
>
Point3d
;
/*!
traits
*/
template
<
typename
_Tp
>
class
DataType
<
Point3_
<
_Tp
>
>
{
public:
...
...
@@ -277,17 +259,11 @@ public:
_Tp
width
,
height
;
// the width and the height
};
/*!
\typedef
*/
typedef
Size_
<
int
>
Size2i
;
typedef
Size_
<
float
>
Size2f
;
typedef
Size_
<
double
>
Size2d
;
typedef
Size2i
Size
;
/*!
traits
*/
template
<
typename
_Tp
>
class
DataType
<
Size_
<
_Tp
>
>
{
public:
...
...
@@ -347,17 +323,11 @@ public:
_Tp
x
,
y
,
width
,
height
;
//< the top-left corner, as well as width and height of the rectangle
};
/*!
\typedef
*/
typedef
Rect_
<
int
>
Rect2i
;
typedef
Rect_
<
float
>
Rect2f
;
typedef
Rect_
<
double
>
Rect2d
;
typedef
Rect2i
Rect
;
/*!
traits
*/
template
<
typename
_Tp
>
class
DataType
<
Rect_
<
_Tp
>
>
{
public:
...
...
@@ -404,9 +374,6 @@ public:
float
angle
;
//< the rotation angle. When the angle is 0, 90, 180, 270 etc., the rectangle becomes an up-right rectangle.
};
/*!
traits
*/
template
<
>
class
DataType
<
RotatedRect
>
{
public:
...
...
@@ -445,9 +412,6 @@ public:
int
start
,
end
;
};
/*!
traits
*/
template
<
>
class
DataType
<
Range
>
{
public:
...
...
@@ -502,14 +466,8 @@ public:
bool
isReal
()
const
;
};
/*!
\typedef
*/
typedef
Scalar_
<
double
>
Scalar
;
/*!
traits
*/
template
<
typename
_Tp
>
class
DataType
<
Scalar_
<
_Tp
>
>
{
public:
...
...
@@ -579,9 +537,6 @@ public:
CV_PROP_RW
int
class_id
;
//!< object class (if the keypoints need to be clustered by an object they belong to)
};
/*!
traits
*/
template
<
>
class
DataType
<
KeyPoint
>
{
public:
...
...
@@ -623,9 +578,6 @@ public:
bool
operator
<
(
const
DMatch
&
m
)
const
;
};
/*!
traits
*/
template
<
>
class
DataType
<
DMatch
>
{
public:
...
...
@@ -695,9 +647,6 @@ public:
CV_PROP_RW
double
nu20
,
nu11
,
nu02
,
nu30
,
nu21
,
nu12
,
nu03
;
};
/*!
traits
*/
template
<
>
class
DataType
<
Moments
>
{
public:
...
...
modules/flann/include/opencv2/flann/dynamic_bitset.h
浏览文件 @
dce629d0
...
...
@@ -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 s
ize
/**
resize the bitset so that it contains at least sz
bits
* @param s
z
*/
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
*/
...
...
modules/flann/include/opencv2/flann/lsh_table.h
浏览文件 @
dce629d0
...
...
@@ -153,8 +153,10 @@ public:
* @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
*/
LshTable
(
unsigned
int
/*feature_size*/
,
unsigned
int
/*key_size*/
)
LshTable
(
unsigned
int
feature_size
,
unsigned
int
key_size
)
{
(
void
)
feature_size
;
(
void
)
key_size
;
std
::
cerr
<<
"LSH is not implemented for that type"
<<
std
::
endl
;
assert
(
0
);
}
...
...
modules/flann/include/opencv2/flann/result_set.h
浏览文件 @
dce629d0
...
...
@@ -449,7 +449,7 @@ class RadiusUniqueResultSet : public UniqueResultSet<DistanceType>
{
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<DistanceType>
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
)
{
...
...
modules/imgproc/include/opencv2/imgproc.hpp
浏览文件 @
dce629d0
...
...
@@ -698,8 +698,7 @@ public:
/**
* Draw lines on the given canvas.
*
* @param image The image, where lines will be drawn.
* @param _image The image, where lines will be drawn.
* Should have the size of the image, where the lines were found
* @param lines The lines that need to be drawn
*/
...
...
@@ -707,11 +706,10 @@ public:
/**
* Draw both vectors on the image canvas. Uses blue for lines 1 and red for lines 2.
*
* @param size The size of the image, where lines were found.
* @param lines1 The first lines that need to be drawn. Color - Blue.
* @param lines2 The second lines that need to be drawn. Color - Red.
* @param
image
Optional image, where lines will be drawn.
* @param
_image
Optional image, where lines will be drawn.
* Should have the size of the image, where the lines were found
* @return The number of mismatching pixels between lines1 and lines2.
*/
...
...
modules/video/include/opencv2/video/tracking.hpp
浏览文件 @
dce629d0
...
...
@@ -110,7 +110,7 @@ CV_EXPORTS_W double findTransformECC( InputArray templateImage, InputArray input
/*!
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.
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录