packages feed

opencv-extra-0.0.0.0: src/OpenCV/Extra/XFeatures2d.cpp

#include "opencv2/core.hpp"

#include "opencv2/xfeatures2d.hpp"

#include "xfeatures/surf.hpp"

using namespace cv;

extern "C" {
Ptr_SURF * inline_c_OpenCV_Extra_XFeatures2d_0_bc51f58e60712bc5e3af0c96b0bc52ae5b9b1c1a(double chessianThreshold_27_inline_c_0, int32_t surf_nOctaves_inline_c_1, int32_t surf_nOctaveLayers_inline_c_2, bool cextended_27_inline_c_3, bool cupright_27_inline_c_4) {

      cv::Ptr<cv::xfeatures2d::SURF> surfPtr =
        cv::xfeatures2d::SURF::create
        ( chessianThreshold_27_inline_c_0
        , surf_nOctaves_inline_c_1
        , surf_nOctaveLayers_inline_c_2
        , cextended_27_inline_c_3
        , cupright_27_inline_c_4
        );
      return new cv::Ptr<cv::xfeatures2d::SURF>(surfPtr);
    
}

}

extern "C" {
Exception * inline_c_OpenCV_Extra_XFeatures2d_1_010dc4a635b061c9b20e8bc1a0f09def3d5e993b(Ptr_SURF * surfPtr_inline_c_0, Mat * maskPtr_inline_c_1, Mat * imgPtr_inline_c_2, Mat * descPtr_inline_c_3, int32_t * numPtsPtr_inline_c_4, KeyPoint *** arrayPtrPtr_inline_c_5) {

  try
  {   
          cv::xfeatures2d::SURF * surf = *surfPtr_inline_c_0;
          cv::Mat * maskPtr = maskPtr_inline_c_1;

          std::vector<cv::KeyPoint> keypoints = std::vector<cv::KeyPoint>();
          surf->
            detectAndCompute
            ( *imgPtr_inline_c_2
            , maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(noArray())
            , keypoints
            , *descPtr_inline_c_3
            , false
            );

          *numPtsPtr_inline_c_4 = keypoints.size();

          cv::KeyPoint * * * arrayPtrPtr = arrayPtrPtr_inline_c_5;
          cv::KeyPoint * * arrayPtr = new cv::KeyPoint * [keypoints.size()];
          *arrayPtrPtr = arrayPtr;

          for (std::vector<cv::KeyPoint>::size_type ix = 0; ix != keypoints.size(); ix++)
          {
            cv::KeyPoint & org = keypoints[ix];
            cv::KeyPoint * newPt =
              new cv::KeyPoint( org.pt
                              , org.size
                              , org.angle
                              , org.response
                              , org.octave
                              , org.class_id
                              );
            arrayPtr[ix] = newPt;
          }
        
    return NULL;
  }
  catch (const cv::Exception & e)
  {
    return new cv::Exception(e);
  }

}

}

extern "C" {
void inline_c_OpenCV_Extra_XFeatures2d_2_cf7ed8abd0aadc595f02b1ca9ec2ba13285a12cd(KeyPoint *** arrayPtrPtr_inline_c_0) {

            delete [] *arrayPtrPtr_inline_c_0;
          
}

}

extern "C" {
void inline_c_OpenCV_Extra_XFeatures2d_3_0a78fb7b80501d1c0a37452b7758538729bc3810(Ptr_SURF * ptr_inline_c_0) {

                  cv::Ptr<cv::xfeatures2d::SURF> * surf_ptr_ptr = ptr_inline_c_0;
                  surf_ptr_ptr->release();
                  delete surf_ptr_ptr;
                
}

}