github.com/kaydxh/golang@v0.0.131/pkg/gocv/cgo/third_path/opencv4/include/opencv2/dnn/layer.hpp (about)

     1  /*M///////////////////////////////////////////////////////////////////////////////////////
     2  //
     3  //  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
     4  //
     5  //  By downloading, copying, installing or using the software you agree to this license.
     6  //  If you do not agree to this license, do not download, install,
     7  //  copy or use the software.
     8  //
     9  //
    10  //                           License Agreement
    11  //                For Open Source Computer Vision Library
    12  //
    13  // Copyright (C) 2013, OpenCV Foundation, all rights reserved.
    14  // Third party copyrights are property of their respective owners.
    15  //
    16  // Redistribution and use in source and binary forms, with or without modification,
    17  // are permitted provided that the following conditions are met:
    18  //
    19  //   * Redistribution's of source code must retain the above copyright notice,
    20  //     this list of conditions and the following disclaimer.
    21  //
    22  //   * Redistribution's in binary form must reproduce the above copyright notice,
    23  //     this list of conditions and the following disclaimer in the documentation
    24  //     and/or other materials provided with the distribution.
    25  //
    26  //   * The name of the copyright holders may not be used to endorse or promote products
    27  //     derived from this software without specific prior written permission.
    28  //
    29  // This software is provided by the copyright holders and contributors "as is" and
    30  // any express or implied warranties, including, but not limited to, the implied
    31  // warranties of merchantability and fitness for a particular purpose are disclaimed.
    32  // In no event shall the Intel Corporation or contributors be liable for any direct,
    33  // indirect, incidental, special, exemplary, or consequential damages
    34  // (including, but not limited to, procurement of substitute goods or services;
    35  // loss of use, data, or profits; or business interruption) however caused
    36  // and on any theory of liability, whether in contract, strict liability,
    37  // or tort (including negligence or otherwise) arising in any way out of
    38  // the use of this software, even if advised of the possibility of such damage.
    39  //
    40  //M*/
    41  
    42  #ifndef OPENCV_DNN_LAYER_HPP
    43  #define OPENCV_DNN_LAYER_HPP
    44  #include <opencv2/dnn.hpp>
    45  
    46  namespace cv {
    47  namespace dnn {
    48  CV__DNN_INLINE_NS_BEGIN
    49  //! @addtogroup dnn
    50  //! @{
    51  //!
    52  //! @defgroup dnnLayerFactory Utilities for New Layers Registration
    53  //! @{
    54  
    55  /** @brief %Layer factory allows to create instances of registered layers. */
    56  class CV_EXPORTS LayerFactory
    57  {
    58  public:
    59  
    60      //! Each Layer class must provide this function to the factory
    61      typedef Ptr<Layer>(*Constructor)(LayerParams &params);
    62  
    63      //! Registers the layer class with typename @p type and specified @p constructor. Thread-safe.
    64      static void registerLayer(const String &type, Constructor constructor);
    65  
    66      //! Unregisters registered layer with specified type name. Thread-safe.
    67      static void unregisterLayer(const String &type);
    68  
    69      /** @brief Creates instance of registered layer.
    70       *  @param type type name of creating layer.
    71       *  @param params parameters which will be used for layer initialization.
    72       *  @note Thread-safe.
    73       */
    74      static Ptr<Layer> createLayerInstance(const String &type, LayerParams& params);
    75  
    76  private:
    77      LayerFactory();
    78  };
    79  
    80  //! @}
    81  //! @}
    82  CV__DNN_INLINE_NS_END
    83  }
    84  }
    85  #endif