packages feed

opencv-0.0.0.0: src/OpenCV/ImgProc/StructuralAnalysis.cpp

#include "opencv2/core.hpp"

#include "opencv2/imgproc.hpp"

using namespace cv;

extern "C" {
Exception * inline_c_OpenCV_ImgProc_StructuralAnalysis_0_7935fba0a7f8ba80a4bbee32ab76a2a8748ac730(Point2f * contourPtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, double * carea_27_inline_c_2, bool coriented_27_inline_c_3) {

  try
  {   
        cv::_InputArray contour =
          cv::_InputArray( contourPtr_inline_c_0
                         , cnumPoints_27_inline_c_1
                         );
        *carea_27_inline_c_2 = cv::contourArea(contour, coriented_27_inline_c_3);
      
    return NULL;
  }
  catch (const cv::Exception & e)
  {
    return new cv::Exception(e);
  }

}

}

extern "C" {
Exception * inline_c_OpenCV_ImgProc_StructuralAnalysis_1_4b2ac3789eb26d10e61f390b3818a71f30a3a509(Point2f * contourPtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, double * cresultPtr_27_inline_c_2, Point2f * ptPtr_inline_c_3, bool cmeasureDist_27_inline_c_4) {

  try
  {   
        cv::_InputArray contour =
          cv::_InputArray( contourPtr_inline_c_0
                         , cnumPoints_27_inline_c_1
                         );
        *cresultPtr_27_inline_c_2 =
          cv::pointPolygonTest( contour
                              , *ptPtr_inline_c_3
                              , cmeasureDist_27_inline_c_4
                              );
      
    return NULL;
  }
  catch (const cv::Exception & e)
  {
    return new cv::Exception(e);
  }

}

}

extern "C" {
void inline_c_OpenCV_ImgProc_StructuralAnalysis_2_614023623c1bbdf57403aa0cb1c576902533a9fe(Mat * srcPtr_inline_c_0, int32_t cmode_27_inline_c_1, int32_t cmethod_27_inline_c_2, int32_t * numContoursPtr_inline_c_3, Point2i **** contoursPtrPtr_inline_c_4, Vec4i *** hierarchyPtrPtr_inline_c_5, int32_t ** contourLengthsPtrPtr_inline_c_6) {

      std::vector<std::vector<cv::Point>> contours;
      std::vector<cv::Vec4i> hierarchy;
      cv::findContours(
        *srcPtr_inline_c_0,
        contours,
        hierarchy,
        cmode_27_inline_c_1,
        cmethod_27_inline_c_2
      );

      *numContoursPtr_inline_c_3 = contours.size();

      cv::Point * * * * contoursPtrPtr = contoursPtrPtr_inline_c_4;
      cv::Point * * * contoursPtr = new cv::Point * * [contours.size()];
      *contoursPtrPtr = contoursPtr;

      cv::Vec4i * * * hierarchyPtrPtr = hierarchyPtrPtr_inline_c_5;
      cv::Vec4i * * hierarchyPtr = new cv::Vec4i * [contours.size()];
      *hierarchyPtrPtr = hierarchyPtr;

      int32_t * * contourLengthsPtrPtr = contourLengthsPtrPtr_inline_c_6;
      int32_t * contourLengthsPtr = new int32_t [contours.size()];
      *contourLengthsPtrPtr = contourLengthsPtr;

      for (std::vector<std::vector<cv::Point>>::size_type i = 0; i < contours.size(); i++) {
        std::vector<cv::Point> & contourPoints = contours[i];
        cv::Vec4i hierarchyInfo = hierarchy[i];

        contourLengthsPtr[i] = contourPoints.size();

        cv::Point * * newContourPoints = new cv::Point * [contourPoints.size()];
        for (std::vector<cv::Point>::size_type j = 0; j < contourPoints.size(); j++) {
          cv::Point & orig = contourPoints[j];
          cv::Point * newPt = new cv::Point(orig.x, orig.y);
          newContourPoints[j] = newPt;
        }
        contoursPtr[i] = newContourPoints;

        hierarchyPtr[i] = new cv::Vec4i(
          hierarchyInfo[0],
          hierarchyInfo[1],
          hierarchyInfo[2],
          hierarchyInfo[3]
        );
      }
    
}

}

extern "C" {
void inline_c_OpenCV_ImgProc_StructuralAnalysis_3_ff5ea92778e465a6335a4692b484c0bf9d4d34d0(Point2i **** contoursPtrPtr_inline_c_0, Vec4i *** hierarchyPtrPtr_inline_c_1, int32_t ** contourLengthsPtrPtr_inline_c_2) {

      delete [] *contoursPtrPtr_inline_c_0;
      delete [] *hierarchyPtrPtr_inline_c_1;
      delete [] *contourLengthsPtrPtr_inline_c_2;
    
}

}

extern "C" {
void inline_c_OpenCV_ImgProc_StructuralAnalysis_4_b1965061fd4c69b7637c516ababa8f2fae19bdde(Point2i * curvePtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, double cepsilon_27_inline_c_2, bool cisClosed_27_inline_c_3, int32_t * numPointsResPtr_inline_c_4, Point2i *** pointsResPtrPtr_inline_c_5) {

        std::vector<cv::Point> points_res;
        cv::_InputArray curve = cv::_InputArray (curvePtr_inline_c_0, cnumPoints_27_inline_c_1);
        cv::approxPolyDP
        (  curve
        ,  points_res
        ,  cepsilon_27_inline_c_2
        ,  cisClosed_27_inline_c_3
        );

        *numPointsResPtr_inline_c_4 = points_res.size();

        cv::Point * * * pointsResPtrPtr = pointsResPtrPtr_inline_c_5;
        cv::Point * * pointsResPtr = new cv::Point * [points_res.size()];
        *pointsResPtrPtr = pointsResPtr;

        for (std::vector<cv::Point>::size_type i = 0; i < points_res.size(); i++) {
            cv::Point & ptAddress = points_res[i];
            cv::Point * newPt = new cv::Point(ptAddress.x, ptAddress.y);
            pointsResPtr[i] = newPt;
        }
      
}

}

extern "C" {
void inline_c_OpenCV_ImgProc_StructuralAnalysis_5_c6aa8b9807565075fddddcc34edf8efb263f7d67(Point2i *** pointsResPtrPtr_inline_c_0) {

        delete [] *pointsResPtrPtr_inline_c_0;
      
}

}

extern "C" {
Exception * inline_c_OpenCV_ImgProc_StructuralAnalysis_6_1fed7fd1e0382f9c24232067deba04c89c597064(Point2i * curvePtr_inline_c_0, int32_t cnumPoints_27_inline_c_1, double * cresultPtr_27_inline_c_2, bool cisClosed_27_inline_c_3) {

  try
  {   
            cv::_InputArray curve =
              cv::_InputArray ( curvePtr_inline_c_0
                              , cnumPoints_27_inline_c_1
                              );
            *cresultPtr_27_inline_c_2 =
               cv::arcLength( curve
                              , cisClosed_27_inline_c_3
                            );
        
    return NULL;
  }
  catch (const cv::Exception & e)
  {
    return new cv::Exception(e);
  }

}

}

extern "C" {
RotatedRect * inline_c_OpenCV_ImgProc_StructuralAnalysis_7_a83635d7b79cb79d9a94886051098775b48130e1(Point2i * pointsPtr_inline_c_0, int32_t cnumPoints_27_inline_c_1) {
return (
          new RotatedRect(
            cv::minAreaRect(
                cv::_InputArray( pointsPtr_inline_c_0
                               , cnumPoints_27_inline_c_1)))
        );
}

}