opencv-0.0.0.0: src/OpenCV/Features2d.cpp
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "orb.hpp"
#include "simple_blob_detector.hpp"
using namespace cv;
using namespace cv::flann;
extern "C" {
void inline_c_OpenCV_Features2d_0_c20526c404a6fe4a0e071193ba0c68f0b5fe2c85(Mat * trainVecPtr_inline_c_0, Mat * trainVecPtr_inline_c_1, int32_t ctrainVecLength_27_inline_c_2, DescriptorMatcher * dmPtr_inline_c_3) {
std::vector<Mat> buffer( trainVecPtr_inline_c_0
, trainVecPtr_inline_c_1 + ctrainVecLength_27_inline_c_2 );
dmPtr_inline_c_3->add(buffer);
}
}
extern "C" {
void inline_c_OpenCV_Features2d_1_2813de60614f1b2e1d0142d271069dc9106fb99d(DescriptorMatcher * dmPtr_inline_c_0) {
dmPtr_inline_c_0->train();
}
}
extern "C" {
void inline_c_OpenCV_Features2d_2_3de0409117ca129a76f8d5b6e877199877ed9bf5(Mat * maskPtr_inline_c_0, DescriptorMatcher * dmPtr_inline_c_1, Mat * queryPtr_inline_c_2, Mat * trainPtr_inline_c_3, int32_t * numMatchesPtr_inline_c_4, DMatch *** arrayPtrPtr_inline_c_5) {
cv::Mat * maskPtr = maskPtr_inline_c_0;
std::vector<cv::DMatch> matches = std::vector<cv::DMatch>();
dmPtr_inline_c_1->match
( *queryPtr_inline_c_2
, *trainPtr_inline_c_3
, matches
, maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(noArray())
);
*numMatchesPtr_inline_c_4 = matches.size();
cv::DMatch * * * arrayPtrPtr = arrayPtrPtr_inline_c_5;
cv::DMatch * * arrayPtr = new cv::DMatch * [matches.size()];
*arrayPtrPtr = arrayPtr;
for (std::vector<cv::DMatch>::size_type ix = 0; ix != matches.size(); ix++)
{
cv::DMatch & org = matches[ix];
cv::DMatch * newMatch =
new cv::DMatch( org.queryIdx
, org.trainIdx
, org.imgIdx
, org.distance
);
arrayPtr[ix] = newMatch;
}
}
}
extern "C" {
void inline_c_OpenCV_Features2d_3_c754e0d048d4bef52c712950b7974557eb9337ca(DMatch *** arrayPtrPtr_inline_c_0) {
delete [] *arrayPtrPtr_inline_c_0;
}
}
extern "C" {
void inline_c_OpenCV_Features2d_4_f81e11a4cba05db7138b02901752eba162a82674(Mat * maskPtr_inline_c_0, DescriptorMatcher * dmPtr_inline_c_1, Mat * queryPtr_inline_c_2, int32_t * numMatchesPtr_inline_c_3, DMatch *** arrayPtrPtr_inline_c_4) {
cv::Mat * maskPtr = maskPtr_inline_c_0;
std::vector<cv::DMatch> matches = std::vector<cv::DMatch>();
dmPtr_inline_c_1->match
( *queryPtr_inline_c_2
, matches
, maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(noArray())
);
*numMatchesPtr_inline_c_3 = matches.size();
cv::DMatch * * * arrayPtrPtr = arrayPtrPtr_inline_c_4;
cv::DMatch * * arrayPtr = new cv::DMatch * [matches.size()];
*arrayPtrPtr = arrayPtr;
for (std::vector<cv::DMatch>::size_type ix = 0; ix != matches.size(); ix++)
{
cv::DMatch & org = matches[ix];
cv::DMatch * newMatch =
new cv::DMatch( org.queryIdx
, org.trainIdx
, org.imgIdx
, org.distance
);
arrayPtr[ix] = newMatch;
}
}
}
extern "C" {
void inline_c_OpenCV_Features2d_5_c754e0d048d4bef52c712950b7974557eb9337ca(DMatch *** arrayPtrPtr_inline_c_0) {
delete [] *arrayPtrPtr_inline_c_0;
}
}
extern "C" {
Ptr_ORB * inline_c_OpenCV_Features2d_6_6b7f5143762c2c000af552afd3a3d686bdefea20(int32_t orb_nfeatures_inline_c_0, float cscaleFactor_27_inline_c_1, int32_t orb_nlevels_inline_c_2, int32_t orb_edgeThreshold_inline_c_3, int32_t orb_firstLevel_inline_c_4, int32_t cWTA_K_27_inline_c_5, int32_t cscoreType_27_inline_c_6, int32_t orb_patchSize_inline_c_7, int32_t orb_fastThreshold_inline_c_8) {
cv::Ptr<cv::ORB> orbPtr =
cv::ORB::create
( orb_nfeatures_inline_c_0
, cscaleFactor_27_inline_c_1
, orb_nlevels_inline_c_2
, orb_edgeThreshold_inline_c_3
, orb_firstLevel_inline_c_4
, cWTA_K_27_inline_c_5
, cscoreType_27_inline_c_6
, orb_patchSize_inline_c_7
, orb_fastThreshold_inline_c_8
);
return new cv::Ptr<cv::ORB>(orbPtr);
}
}
extern "C" {
Exception * inline_c_OpenCV_Features2d_7_ab5c3c7294768d603136931b15d35c34105db400(Ptr_ORB * orbPtr_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::ORB * orb = *orbPtr_inline_c_0;
cv::Mat * maskPtr = maskPtr_inline_c_1;
std::vector<cv::KeyPoint> keypoints = std::vector<cv::KeyPoint>();
orb->
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_Features2d_8_cf7ed8abd0aadc595f02b1ca9ec2ba13285a12cd(KeyPoint *** arrayPtrPtr_inline_c_0) {
delete [] *arrayPtrPtr_inline_c_0;
}
}
extern "C" {
Ptr_SimpleBlobDetector * inline_c_OpenCV_Features2d_9_6d49cdf958cb32caa9373b05297fc3fae472250c(unsigned char cblobColor_27_inline_c_0, bool cfilterByArea_27_inline_c_1, bool cfilterByCircularity_27_inline_c_2, bool cfilterByColor_27_inline_c_3, bool cfilterByConvexity_27_inline_c_4, bool cfilterByInertia_27_inline_c_5, float cmaxArea_27_inline_c_6, float cmaxCircularity_27_inline_c_7, float cmaxConvexity_27_inline_c_8, float cmaxInertiaRatio_27_inline_c_9, float cmaxThreshold_27_inline_c_10, float cminArea_27_inline_c_11, float cminCircularity_27_inline_c_12, float cminConvexity_27_inline_c_13, float cminDistBetweenBlobs_27_inline_c_14, float cminInertiaRatio_27_inline_c_15, float cminRepeatability_27_inline_c_16, float cminThreshold_27_inline_c_17, float cthresholdStep_27_inline_c_18) {
cv::SimpleBlobDetector::Params params;
params.blobColor = cblobColor_27_inline_c_0;
params.filterByArea = cfilterByArea_27_inline_c_1;
params.filterByCircularity = cfilterByCircularity_27_inline_c_2;
params.filterByColor = cfilterByColor_27_inline_c_3;
params.filterByConvexity = cfilterByConvexity_27_inline_c_4;
params.filterByInertia = cfilterByInertia_27_inline_c_5;
params.maxArea = cmaxArea_27_inline_c_6;
params.maxCircularity = cmaxCircularity_27_inline_c_7;
params.maxConvexity = cmaxConvexity_27_inline_c_8;
params.maxInertiaRatio = cmaxInertiaRatio_27_inline_c_9;
params.maxThreshold = cmaxThreshold_27_inline_c_10;
params.minArea = cminArea_27_inline_c_11;
params.minCircularity = cminCircularity_27_inline_c_12;
params.minConvexity = cminConvexity_27_inline_c_13;
params.minDistBetweenBlobs = cminDistBetweenBlobs_27_inline_c_14;
params.minInertiaRatio = cminInertiaRatio_27_inline_c_15;
params.minRepeatability = cminRepeatability_27_inline_c_16;
params.minThreshold = cminThreshold_27_inline_c_17;
params.thresholdStep = cthresholdStep_27_inline_c_18;
cv::Ptr<cv::SimpleBlobDetector> detectorPtr =
cv::SimpleBlobDetector::create(params);
return new cv::Ptr<cv::SimpleBlobDetector>(detectorPtr);
}
}
extern "C" {
Exception * inline_c_OpenCV_Features2d_10_d7dbc50e18a0ed3c0249b015e18a47ba992cc422(Ptr_SimpleBlobDetector * detectorPtr_inline_c_0, Mat * maskPtr_inline_c_1, Mat * imgPtr_inline_c_2, int32_t * numPtsPtr_inline_c_3, KeyPoint *** arrayPtrPtr_inline_c_4) {
try
{
cv::SimpleBlobDetector * detector = *detectorPtr_inline_c_0;
cv::Mat * maskPtr = maskPtr_inline_c_1;
std::vector<cv::KeyPoint> keypoints = std::vector<cv::KeyPoint>();
detector->
detect
( *imgPtr_inline_c_2
, keypoints
, maskPtr ? cv::_InputArray(*maskPtr) : cv::_InputArray(noArray())
);
*numPtsPtr_inline_c_3 = keypoints.size();
cv::KeyPoint * * * arrayPtrPtr = arrayPtrPtr_inline_c_4;
cv::KeyPoint * * arrayPtr = new cv::KeyPoint * [keypoints.size()];
*arrayPtrPtr = arrayPtr;
for (std::vector<cv::KeyPoint>::size_type ix = 0; ix != keypoints.size(); ix++)
{
arrayPtr[ix] = new cv::KeyPoint(keypoints[ix]);
}
return NULL;
}
catch (const cv::Exception & e)
{
return new cv::Exception(e);
}
}
}
extern "C" {
void inline_c_OpenCV_Features2d_11_cf7ed8abd0aadc595f02b1ca9ec2ba13285a12cd(KeyPoint *** arrayPtrPtr_inline_c_0) {
delete [] *arrayPtrPtr_inline_c_0;
}
}
extern "C" {
BFMatcher * inline_c_OpenCV_Features2d_12_3d629b7d8af2ebe2d28b0b1fe498acf0062a5280(int32_t cnormType_27_inline_c_0, bool ccrossCheck_27_inline_c_1) {
return (
new cv::BFMatcher
( cnormType_27_inline_c_0
, ccrossCheck_27_inline_c_1
)
);
}
}
extern "C" {
void * inline_c_OpenCV_Features2d_13_0d213c0657123ccc4d29cdc7303c0b69c02d5fda(int32_t ctree_27_inline_c_0) {
return ( new flann::KDTreeIndexParams(ctree_27_inline_c_0) );
}
}
extern "C" {
void * inline_c_OpenCV_Features2d_14_2c184908ffa3530071446466c17650df005901f2(int32_t ctableNumber_27_inline_c_0, int32_t ckeySize_27_inline_c_1, int32_t cmultiProbeLevel_27_inline_c_2) {
return ( new cv::flann::LshIndexParams(ctableNumber_27_inline_c_0, ckeySize_27_inline_c_1, cmultiProbeLevel_27_inline_c_2) );
}
}
extern "C" {
void * inline_c_OpenCV_Features2d_15_f616e207428e82c732ad58557798246008ce8ba8(int32_t cchecks_27_inline_c_0, float ceps_27_inline_c_1, bool csorted_27_inline_c_2) {
return ( new cv::flann::SearchParams(cchecks_27_inline_c_0, ceps_27_inline_c_1, csorted_27_inline_c_2) );
}
}
extern "C" {
FlannBasedMatcher * inline_c_OpenCV_Features2d_16_6b8b6e4917570b136dfcc14b4750c0f143a658dd(void * cindexParams_27_inline_c_0, void * csearchParams_27_inline_c_1) {
return (
new cv::FlannBasedMatcher((flann::IndexParams*)(cindexParams_27_inline_c_0), (flann::SearchParams*)(csearchParams_27_inline_c_1))
);
}
}
extern "C" {
Exception * inline_c_OpenCV_Features2d_17_9769634ffcfe6b2423aca319c5ed479323f9a54a(KeyPoint * kps1Ptr_inline_c_0, KeyPoint * kps1Ptr_inline_c_1, int32_t ckps1Length_27_inline_c_2, KeyPoint * kps2Ptr_inline_c_3, KeyPoint * kps2Ptr_inline_c_4, int32_t ckps2Length_27_inline_c_5, DMatch * mt12Ptr_inline_c_6, DMatch * mt12Ptr_inline_c_7, int32_t cmatches1to2Length_27_inline_c_8, Mat * img1Ptr_inline_c_9, Mat * img2Ptr_inline_c_10, Mat * outImgPtr_inline_c_11) {
try
{
std::vector<KeyPoint> kps1(kps1Ptr_inline_c_0, kps1Ptr_inline_c_1 + ckps1Length_27_inline_c_2);
std::vector<KeyPoint> kps2(kps2Ptr_inline_c_3, kps2Ptr_inline_c_4 + ckps2Length_27_inline_c_5);
std::vector<DMatch> mt12(mt12Ptr_inline_c_6, mt12Ptr_inline_c_7 + cmatches1to2Length_27_inline_c_8);
drawMatches(
*img1Ptr_inline_c_9,
kps1,
*img2Ptr_inline_c_10,
kps2,
mt12,
*outImgPtr_inline_c_11);
return NULL;
}
catch (const cv::Exception & e)
{
return new cv::Exception(e);
}
}
}
extern "C" {
void inline_c_OpenCV_Features2d_18_6765b7d0bd3bbad57c755d54daef3014c487f076(FlannBasedMatcher * ptr_inline_c_0) {
delete ptr_inline_c_0 ;
}
}
extern "C" {
void inline_c_OpenCV_Features2d_19_4d27bc77ab4560f842e67bc6c3296c78e8185def(BFMatcher * ptr_inline_c_0) {
delete ptr_inline_c_0 ;
}
}
extern "C" {
void inline_c_OpenCV_Features2d_20_33d1ad332669dd8a8debec52f30c332c6ecaca71(Ptr_SimpleBlobDetector * ptr_inline_c_0) {
cv::Ptr<cv::SimpleBlobDetector> * simpleBlobDetector_ptr_ptr = ptr_inline_c_0;
simpleBlobDetector_ptr_ptr->release();
delete simpleBlobDetector_ptr_ptr;
}
}
extern "C" {
void inline_c_OpenCV_Features2d_21_ed7595b29d7e25c46f90b240e3eaf60bd8a0e85f(Ptr_ORB * ptr_inline_c_0) {
cv::Ptr<cv::ORB> * orb_ptr_ptr = ptr_inline_c_0;
orb_ptr_ptr->release();
delete orb_ptr_ptr;
}
}