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

     1  // This file is part of OpenCV project.
     2  // It is subject to the license terms in the LICENSE file found in the top-level directory
     3  // of this distribution and at http://opencv.org/license.html.
     4  //
     5  // Copyright (C) 2021 Intel Corporation
     6  
     7  
     8  #ifndef OPENCV_GAPI_PYTHON_API_HPP
     9  #define OPENCV_GAPI_PYTHON_API_HPP
    10  
    11  #include <opencv2/gapi/gkernel.hpp>     // GKernelPackage
    12  #include <opencv2/gapi/own/exports.hpp> // GAPI_EXPORTS
    13  
    14  namespace cv {
    15  namespace gapi {
    16  
    17  /**
    18   * @brief This namespace contains G-API Python backend functions,
    19   * structures, and symbols.
    20   *
    21   * This functionality is required to enable G-API custom operations
    22   * and kernels when using G-API from Python, no need to use it in the
    23   * C++ form.
    24   */
    25  namespace python {
    26  
    27  GAPI_EXPORTS cv::gapi::GBackend backend();
    28  
    29  struct GPythonContext
    30  {
    31      const cv::GArgs      &ins;
    32      const cv::GMetaArgs  &in_metas;
    33      const cv::GTypesInfo &out_info;
    34  };
    35  
    36  using Impl = std::function<cv::GRunArgs(const GPythonContext&)>;
    37  
    38  class GAPI_EXPORTS GPythonKernel
    39  {
    40  public:
    41      GPythonKernel() = default;
    42      GPythonKernel(Impl run);
    43  
    44      cv::GRunArgs operator()(const GPythonContext& ctx);
    45  private:
    46      Impl m_run;
    47  };
    48  
    49  class GAPI_EXPORTS GPythonFunctor : public cv::gapi::GFunctor
    50  {
    51  public:
    52      using Meta = cv::GKernel::M;
    53  
    54      GPythonFunctor(const char* id, const Meta &meta, const Impl& impl);
    55  
    56      GKernelImpl    impl()    const override;
    57      gapi::GBackend backend() const override;
    58  
    59  private:
    60      GKernelImpl impl_;
    61  };
    62  
    63  } // namespace python
    64  } // namespace gapi
    65  } // namespace cv
    66  
    67  #endif // OPENCV_GAPI_PYTHON_API_HPP