OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::dnn 命名空间参考

命名空间

命名空间 accessor
 
命名空间 details
 

结构体 _Range
 
类 AbsLayer
 
类 AccumLayer
 
类 AcoshLayer
 
类 AcosLayer
 
类 ActivationLayer
 
类 ActivationLayerInt8
 
类 ArgLayer
 ArgMax/ArgMin 层。 更多…
 
类 AsinhLayer
 
类 AsinLayer
 
类 AtanhLayer
 
类 AtanLayer
 
类 AttentionLayer
 
类 BackendNode
 此类的派生类封装了某些后端的函数。 更多…
 
类 BackendWrapper
 此类的派生类为不同的后端和目标包装了cv::Mat更多…
 
类 BaseConvolutionLayer
 
类 BatchNormLayer
 
类 BatchNormLayerInt8
 
类 BlankLayer
 
类 BNLLLayer
 
类 CeilLayer
 
类 CeluLayer
 
类 ChannelsPReLULayer
 
类 ClassificationModel
 此类表示分类模型的高级 API。 更多…
 
类 CompareLayer
 
类 ConcatLayer
 
类 ConstLayer
 
类 ConvolutionLayer
 
类 ConvolutionLayerInt8
 
类 CorrelationLayer
 
类 CoshLayer
 
类 CosLayer
 
类 CropAndResizeLayer
 
类 CropLayer
 
类 CumSumLayer
 
类 DataAugmentationLayer
 
类 DeconvolutionLayer
 
类 DepthToSpaceLayer
 
类 DequantizeLayer
 
类 DetectionModel
 此类表示目标检测网络的高级 API。 更多…
 
类 DetectionOutputLayer
 检测输出层。 更多…
 
类 Dict
 此类实现名称-值字典,值是DictValue的实例。 更多…
 
结构体 DictValue
 此结构体存储以下类型之一的标量值(或数组):double,cv::String或 int64。 更多…
 
类 EinsumLayer
 此函数根据爱因斯坦求和约定执行数组求和。该函数允许使用下标简洁地表达各种数学运算。 更多…
 
类 EltwiseLayer
 输入的逐元素运算。 更多…
 
类 EltwiseLayerInt8
 
类 ELULayer
 
类 ErfLayer
 
类 ExpandLayer
 
类 ExpLayer
 
类 FlattenLayer
 
类 FloorLayer
 
类 FlowWarpLayer
 
类 GatherElementsLayer
 GatherElements 层 GatherElements 获取两个相同秩 r >= 1 的输入数据和索引以及一个可选属性轴,其工作方式如下:output[i][j][k] = data[index[i][j][k]][j][k] 如果 axis = 0 且 r = 3 output[i][j][k] = data[i][index[i][j][k]][k] 如果 axis = 1 且 r = 3 output[i][j][k] = data[i][j][index[i][j][k]] 如果 axis = 2 且 r = 3。 更多…
 
类 GatherLayer
 Gather 层。 更多…
 
类 GeluApproximationLayer
 
类 GeluLayer
 
类 GemmLayer
 
类 GroupNormLayer
 
类 GRULayer
 GRU 递归单层。 更多…
 
类 HardSigmoidLayer
 
类 HardSwishLayer
 
结构体 Image2BlobParams
 图像到 blob 的处理参数。 更多…
 
类 InnerProductLayer
 
类 InnerProductLayerInt8
 
类 InstanceNormLayer
 
类 InterpLayer
 来自https://github.com/cdmh/deeplab-public-ver2的双线性调整大小层。 更多…
 
类 KeypointsModel
 此类表示关键点模型的高级 API。 更多…
 
类 Layer
 此接口类允许构建新的层——网络的构建块。 更多…
 
类 LayerFactory
 Layer 工厂允许创建已注册层的实例。 更多…
 
类 LayerNormLayer
 
类 LayerParams
 此类提供初始化层所需的所有数据。 更多…
 
类 LogLayer
 
类 LRNLayer
 
类 LSTMLayer
 LSTM 递归层。 更多…
 
类 MatMulLayer
 
类 MaxUnpoolLayer
 
类 MishLayer
 
类 Model
 此类表示神经网络的高级 API。 更多…
 
类 MVNLayer
 
类 NaryEltwiseLayer
 
类 Net
 此类允许创建和操作全面的人工神经网络。 更多…
 
类 NormalizeBBoxLayer
 \( L_p \) - 归一化层。 更多…
 
类 NotLayer
 
类 PaddingLayer
 为特定轴添加额外值。 更多…
 
类 PermuteLayer
 
类 PoolingLayer
 
类 PoolingLayerInt8
 
类 PowerLayer
 
类 PriorBoxLayer
 
类 ProposalLayer
 
类 QuantizeLayer
 
类 ReciprocalLayer
 
类 ReduceLayer
 
类 RegionLayer
 
类 ReLU6Layer
 
类 ReLULayer
 
类 ReorgLayer
 
类 RequantizeLayer
 
类 ReshapeLayer
 
类 ResizeLayer
 使用最近邻或双线性策略调整输入 4 维 blob 的大小。 更多…
 
类 RNNLayer
 经典递归层。 更多…
 
类 RoundLayer
 
类 ScaleLayer
 
类 ScaleLayerInt8
 
类 ScatterLayer
 
类 ScatterNDLayer
 
类 SegmentationModel
 此类表示分割模型的高级 API。 更多…
 
类 SeluLayer
 
类 ShiftLayer
 
类 ShiftLayerInt8
 
类 ShrinkLayer
 
类 ShuffleChannelLayer
 
类 SigmoidLayer
 
类 SignLayer
 
类 SinhLayer
 
类 SinLayer
 
类 SliceLayer
 
类 SoftmaxLayer
 
类 SoftmaxLayerInt8
 
类 SoftplusLayer
 
类 SoftsignLayer
 
类 SpaceToDepthLayer
 
类 SplitLayer
 
类 SqrtLayer
 
类 SwishLayer
 
类 TanHLayer
 
类 TanLayer
 
类 TextDetectionModel
 文本检测网络的基类。 更多…
 
类 TextDetectionModel_DB
 此类表示与 DB 模型兼容的文本检测 DL 网络的高级 API。 更多…
 
类 TextDetectionModel_EAST
 此类表示与 EAST 模型兼容的文本检测 DL 网络的高级 API。 更多…
 
类 TextRecognitionModel
 此类表示文本识别网络的高级 API。 更多…
 
类 ThresholdedReluLayer
 
类 TileLayer
 
类 TopKLayer
 

类型定义

typedef std::map< std::string, std::vector< LayerFactory::Constructor > > LayerFactory_Impl
 
typedef std::vector< int > MatShape
 

枚举

枚举 Backend {
  DNN_BACKEND_DEFAULT = 0 ,
  DNN_BACKEND_HALIDE ,
  DNN_BACKEND_INFERENCE_ENGINE ,
  DNN_BACKEND_OPENCV ,
  DNN_BACKEND_VKCOM ,
  DNN_BACKEND_CUDA ,
  DNN_BACKEND_WEBNN ,
  DNN_BACKEND_TIMVX ,
  DNN_BACKEND_CANN
}
 层支持的计算后端枚举。更多...
 
枚举 数据布局 {
  DNN_LAYOUT_UNKNOWN = 0 ,
  DNN_LAYOUT_ND = 1 ,
  DNN_LAYOUT_NCHW = 2 ,
  DNN_LAYOUT_NCDHW = 3 ,
  DNN_LAYOUT_NHWC = 4 ,
  DNN_LAYOUT_NDHWC = 5 ,
  DNN_LAYOUT_PLANAR = 6
}
 模型推理的数据布局枚举。更多...
 
枚举 图像填充模式 {
  DNN_PMODE_NULL = 0 ,
  DNN_PMODE_CROP_CENTER = 1 ,
  DNN_PMODE_LETTERBOX = 2
}
 图像处理模式枚举。为了方便DNN模型的专用预处理需求。例如,Yolo系列模型中经常使用的letter box更多...
 
枚举类SoftNMSMethod {
  SoftNMSMethod::SOFTNMS_LINEAR = 1 ,
  SoftNMSMethod::SOFTNMS_GAUSSIAN = 2
}
 Soft NMS方法枚举。更多...
 
枚举 目标设备 {
  DNN_TARGET_CPU = 0 ,
  DNN_TARGET_OPENCL ,
  DNN_TARGET_OPENCL_FP16 ,
  DNN_TARGET_MYRIAD ,
  DNN_TARGET_VULKAN ,
  DNN_TARGET_FPGA ,
  DNN_TARGET_CUDA ,
  DNN_TARGET_CUDA_FP16 ,
  DNN_TARGET_HDDL ,
  DNN_TARGET_NPU ,
  DNN_TARGET_CPU_FP16
}
 计算的目标设备枚举。更多...
 

函数

Mat blobFromImage (InputArray image, double scalefactor=1.0, const Size &size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F)
 从图像创建4维blob。可以选择从中心调整大小和裁剪image,减去mean值,按scalefactor缩放值,交换蓝色和红色通道。
 
void blobFromImage (InputArray image, OutputArray blob, double scalefactor=1.0, const Size &size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F)
 从图像创建4维blob。
 
Mat blobFromImages (InputArrayOfArrays images, double scalefactor=1.0, Size size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F)
 从一系列图像创建4维blob。可以选择从中心调整大小和裁剪images,减去mean值,按scalefactor缩放值,交换蓝色和红色通道。
 
void blobFromImages (InputArrayOfArrays images, OutputArray blob, double scalefactor=1.0, Size size=Size(), const Scalar &mean=Scalar(), bool swapRB=false, bool crop=false, int ddepth=CV_32F)
 从一系列图像创建4维blob。
 
Mat blobFromImagesWithParams (InputArrayOfArrays images, const Image2BlobParams &param=Image2BlobParams())
 使用给定参数从一系列图像创建4维blob。
 
void blobFromImagesWithParams (InputArrayOfArrays images, OutputArray blob, const Image2BlobParams &param=Image2BlobParams())
 
Mat blobFromImageWithParams (InputArray image, const Image2BlobParams &param=Image2BlobParams())
 使用给定参数从图像创建4维blob。
 
void blobFromImageWithParams (InputArray image, OutputArray blob, const Image2BlobParams &param=Image2BlobParams())
 
静态 MatShape concat (const MatShape &a, const MatShape &b)
 
void enableModelDiagnostics (bool isDiagnosticsMode)
 启用使用CV DNN API加载DNN模型的详细日志记录。
 
std::vector< std::pair< Backend, Target > > getAvailableBackends ()
 
std::vector< TargetgetAvailableTargets (dnn::Backend be)
 
cv::String getInferenceEngineBackendType ()
 返回推理引擎内部后端API。
 
cv::String getInferenceEngineCPUType ()
 返回推理引擎CPU类型。
 
cv::String getInferenceEngineVPUType ()
 返回推理引擎VPU类型。
 
LayerFactory_ImplgetLayerFactoryImpl ()
 
MutexgetLayerFactoryMutex ()
 获取保护LayerFactory_Impl的互斥锁,参见getLayerFactoryImpl()函数。
 
静态 Mat getPlane (const Mat &m, int n, int cn)
 
void imagesFromBlob (const cv::Mat &blob_, OutputArrayOfArrays images_)
 解析一个4D blob,并通过一个更简单的的数据结构(std::vector<cv::Mat>)输出它包含的图像作为2D数组。
 
静态 bool isAllOnes (const MatShape &inputShape, int startPos, int endPos)
 
void NMSBoxes (const std::vector< Rect > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 给定边界框和对应的分数执行非最大抑制。
 
void NMSBoxes (const std::vector< Rect2d > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 
void NMSBoxes (const std::vector< RotatedRect > &bboxes, const std::vector< float > &scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 
void NMSBoxesBatched (const std::vector< Rect > &bboxes, const std::vector< float > &scores, const std::vector< int > &class_ids, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 对给定的框和不同类别对应的分数执行批量非最大抑制。
 
void NMSBoxesBatched (const std::vector< Rect2d > &bboxes, const std::vector< float > &scores, const std::vector< int > &class_ids, const float score_threshold, const float nms_threshold, std::vector< int > &indices, const float eta=1.f, const int top_k=0)
 
静态整型 normalize_axis (int axis, const MatShape &shape)
 
静态整型 normalize_axis (int axis, int dims)
 将轴从 `[-dims; dims)` (类似于 Python 的切片表示法)转换为 `[0; dims)` 范围。
 
静态 Range normalize_axis_range (const Range &r, int axisSize)
 
模板<typename _Tp >
静态 std::ostream & operator<< (std::ostream &out, const std::vector< _Tp > &shape)
 
模板<typename _Tp >
静态 void print (const std::vector< _Tp > &shape, const String &name="")
 
Net readNet (const String &framework, const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >())
 读取以支持的格式之一表示的深度学习网络。
 
Net readNet (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config="", const String &framework="")
 读取以支持的格式之一表示的深度学习网络。
 
Net readNetFromCaffe (const char *bufferProto, size_t lenProto, const char *bufferModel=NULL, size_t lenModel=0)
 读取存储在内存中 Caffe 模型中的网络模型。
 
Net readNetFromCaffe (const std::vector< uchar > &bufferProto, const std::vector< uchar > &bufferModel=std::vector< uchar >())
 读取存储在内存中 Caffe 模型中的网络模型。
 
Net readNetFromCaffe (CV_WRAP_FILE_PATH const String &prototxt, CV_WRAP_FILE_PATH const String &caffeModel=String())
 读取存储在Caffe框架格式中的网络模型。
 
Net readNetFromDarknet (const char *bufferCfg, size_t lenCfg, const char *bufferModel=NULL, size_t lenModel=0)
 读取存储在Darknet模型文件中的网络模型。
 
Net readNetFromDarknet (const std::vector< uchar > &bufferCfg, const std::vector< uchar > &bufferModel=std::vector< uchar >())
 读取存储在Darknet模型文件中的网络模型。
 
Net readNetFromDarknet (CV_WRAP_FILE_PATH const String &cfgFile, CV_WRAP_FILE_PATH const String &darknetModel=String())
 读取存储在Darknet模型文件中的网络模型。
 
Net readNetFromModelOptimizer (const std::vector< uchar > &bufferModelConfig, const std::vector< uchar > &bufferWeights)
 从英特尔的模型优化器中间表示加载网络。
 
Net readNetFromModelOptimizer (const uchar *bufferModelConfigPtr, size_t bufferModelConfigSize, const uchar *bufferWeightsPtr, size_t bufferWeightsSize)
 从英特尔的模型优化器中间表示加载网络。
 
Net readNetFromModelOptimizer (CV_WRAP_FILE_PATH const String &xml, CV_WRAP_FILE_PATH const String &bin="")
 从英特尔的模型优化器中间表示加载网络。
 
Net readNetFromONNX (const char *buffer, size_t sizeBuffer)
 从内存缓冲区中读取ONNX网络模型。
 
Net readNetFromONNX (const std::vector< uchar > &buffer)
 从内存缓冲区中读取ONNX网络模型。
 
Net readNetFromONNX (CV_WRAP_FILE_PATH const String &onnxFile)
 读取 ONNX 网络模型。
 
Net readNetFromTensorflow (const char *bufferModel, size_t lenModel, const char *bufferConfig=NULL, size_t lenConfig=0)
 读取以 TensorFlow 框架格式存储的网络模型。
 
Net readNetFromTensorflow (const std::vector< uchar > &bufferModel, const std::vector< uchar > &bufferConfig=std::vector< uchar >())
 读取以 TensorFlow 框架格式存储的网络模型。
 
Net readNetFromTensorflow (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &config=String())
 读取以 TensorFlow 框架格式存储的网络模型。
 
Net readNetFromTFLite (const char *bufferModel, size_t lenModel)
 读取以 TFLite 框架格式存储的网络模型。
 
Net readNetFromTFLite (const std::vector< uchar > &bufferModel)
 读取以 TFLite 框架格式存储的网络模型。
 
Net readNetFromTFLite (CV_WRAP_FILE_PATH const String &model)
 读取以 TFLite 框架格式存储的网络模型。
 
Net readNetFromTorch (CV_WRAP_FILE_PATH const String &model, bool isBinary=true, bool evaluate=true)
 读取以 Torch7 框架格式存储的网络模型。
 
Mat readTensorFromONNX (CV_WRAP_FILE_PATH const String &path)
 从 .pb 文件创建 Blob。
 
Mat readTorchBlob (const String &filename, bool isBinary=true)
 加载序列化为 Torch7 框架的 torch.Tensor 对象的 Blob。
 
void releaseHDDLPlugin ()
 释放 HDDL 插件。
 
void resetMyriadDevice ()
 释放 Myriad 设备(已绑定到 OpenCV)。
 
cv::String setInferenceEngineBackendType (const cv::String &newBackendType)
 指定推理引擎内部后端 API。
 
静态 MatShape shape (const int *dims, const int n)
 
静态 MatShape shape (const Mat &mat)
 
静态 MatShape shape (const MatSize &sz)
 
静态 MatShape shape (const UMat &mat)
 
静态 MatShape shape (int a0, int a1=-1, int a2=-1, int a3=-1)
 
void shrinkCaffeModel (CV_WRAP_FILE_PATH const String &src, CV_WRAP_FILE_PATH const String &dst, const std::vector< String > &layersTypes=std::vector< String >())
 将 Caffe 网络的所有权重转换为半精度浮点数。
 
void skipModelImport (bool skip)
 readNet() 函数中跳过诊断运行后的模型导入。
 
静态 Mat slice (const Mat &m, const _Range &r0)
 
静态 Mat slice (const Mat &m, const _Range &r0, const _Range &r1)
 
静态 Mat slice (const Mat &m, const _Range &r0, const _Range &r1, const _Range &r2)
 
静态 Mat slice (const Mat &m, const _Range &r0, const _Range &r1, const _Range &r2, const _Range &r3)
 
void softNMSBoxes (const std::vector< Rect > &bboxes, const std::vector< float > &scores, std::vector< float > &updated_scores, const float score_threshold, const float nms_threshold, std::vector< int > &indices, size_t top_k=0, const float sigma=0.5, SoftNMSMethod method=SoftNMSMethod::SOFTNMS_GAUSSIAN)
 给定边界框和相应的得分执行软非最大值抑制。参考:https://arxiv.org/abs/1704.04503
 
模板<typename _Tp >
静态 std::string toString (const std::vector< _Tp > &shape, const String &name="")
 
静态整型 total (const Mat &mat, int start=-1, int end=-1)
 
静态整型 total (const MatShape &shape, int start=-1, int end=-1)
 
void writeTextGraph (CV_WRAP_FILE_PATH const String &model, CV_WRAP_FILE_PATH const String &output)
 为以协议缓冲区格式存储的二进制网络创建文本表示。
 

函数文档

◆ concat()

静态 MatShape cv::dnn::concat ( const MatShape & a,
const MatShape & b )
inlinestatic

◆ getInferenceEngineBackendType()

cv::String cv::dnn::getInferenceEngineBackendType ( )

返回推理引擎内部后端API。

参见 CV_DNN_BACKEND_INFERENCE_ENGINE_* 宏的值。

从 4.6.0 版开始忽略 OPENCV_DNN_BACKEND_INFERENCE_ENGINE_TYPE 运行时参数(环境变量)。

已弃用

◆ getInferenceEngineCPUType()

cv::String cv::dnn::getInferenceEngineCPUType ( )

返回推理引擎CPU类型。

指定OpenVINO插件:CPU或ARM。

◆ getInferenceEngineVPUType()

cv::String cv::dnn::getInferenceEngineVPUType ( )

返回推理引擎VPU类型。

参见CV_DNN_INFERENCE_ENGINE_VPU_TYPE_*宏的值。

◆ getPlane()

static Mat cv::dnn::getPlane ( const Mat & m,
int n,
int cn )
inlinestatic
以下是此函数的调用图

◆ isAllOnes()

static bool cv::dnn::isAllOnes ( const MatShape & inputShape,
int startPos,
int endPos )
inlinestatic

◆ normalize_axis() [1/2]

static int cv::dnn::normalize_axis ( int axis,
const MatShape & shape )
inlinestatic
以下是此函数的调用图

◆ normalize_axis() [2/2]

static int cv::dnn::normalize_axis ( int axis,
int dims )
inlinestatic

将轴从 `[-dims; dims)` (类似于 Python 的切片表示法)转换为 `[0; dims)` 范围。

◆ normalize_axis_range()

static Range cv::dnn::normalize_axis_range ( const Range & r,
int axisSize )
inlinestatic
以下是此函数的调用图

◆ operator<<()

模板<typename _Tp >
static std::ostream & cv::dnn::operator<< ( std::ostream & out,
const std::vector< _Tp > & shape )
inlinestatic
以下是此函数的调用图

◆ print()

模板<typename _Tp >
static void cv::dnn::print ( const std::vector< _Tp > & shape,
const String & name = "" )
inlinestatic
以下是此函数的调用图

◆ releaseHDDLPlugin()

void cv::dnn::releaseHDDLPlugin ( )

释放 HDDL 插件。

◆ resetMyriadDevice()

void cv::dnn::resetMyriadDevice ( )

释放 Myriad 设备(已绑定到 OpenCV)。

单个Myriad设备不能在使用推理引擎的Myriad插件的多个进程之间共享。

◆ setInferenceEngineBackendType()

cv::String cv::dnn::setInferenceEngineBackendType ( const cv::String & newBackendType)

指定推理引擎内部后端 API。

参见 CV_DNN_BACKEND_INFERENCE_ENGINE_* 宏的值。

返回值
内部后端API的上一个值
已弃用

◆ shape() [1/5]

static MatShape cv::dnn::shape ( const int * dims,
const int n )
inlinestatic
以下是此函数的调用图

◆ shape() [2/5]

static MatShape cv::dnn::shape ( const Mat & mat)
inlinestatic
以下是此函数的调用图

◆ shape() [3/5]

static MatShape cv::dnn::shape ( const MatSize & sz)
inlinestatic
以下是此函数的调用图

◆ shape() [4/5]

static MatShape cv::dnn::shape ( const UMat & mat)
inlinestatic
以下是此函数的调用图

◆ shape() [5/5]

static MatShape cv::dnn::shape ( int a0,
int a1 = -1,
int a2 = -1,
int a3 = -1 )
inlinestatic
以下是此函数的调用图

◆ skipModelImport()

void cv::dnn::skipModelImport ( bool skip)

readNet() 函数中跳过诊断运行后的模型导入。

参数
[in]skip指示是否跳过导入。

这是一个内部OpenCV函数,并非供用户使用。

◆ slice() [1/4]

static Mat cv::dnn::slice ( const Mat & m,
const _Range & r0 )
inlinestatic
以下是此函数的调用图

◆ slice() [2/4]

static Mat cv::dnn::slice ( const Mat & m,
const _Range & r0,
const _Range & r1 )
inlinestatic
以下是此函数的调用图

◆ slice() [3/4]

static Mat cv::dnn::slice ( const Mat & m,
const _Range & r0,
const _Range & r1,
const _Range & r2 )
inlinestatic
以下是此函数的调用图

◆ slice() [4/4]

static Mat cv::dnn::slice ( const Mat & m,
const _Range & r0,
const _Range & r1,
const _Range & r2,
const _Range & r3 )
inlinestatic
以下是此函数的调用图

◆ toString()

模板<typename _Tp >
static std::string cv::dnn::toString ( const std::vector< _Tp > & shape,
const String & name = "" )
inlinestatic
以下是此函数的调用图

◆ total() [1/2]

static int cv::dnn::total ( const Mat & mat,
int start = -1,
int end = -1 )
inlinestatic
以下是此函数的调用图

◆ total() [2/2]

static int cv::dnn::total ( const MatShape & shape,
int start = -1,
int end = -1 )
inlinestatic
以下是此函数的调用图