fixed opencv_java build

pull/3339/head
Vadim Pisarevsky 11 years ago
parent 25a7d023dd
commit 61cddd8b63
  1. 2
      modules/features2d/src/mser.cpp
  2. 3
      modules/features2d/test/test_keypoints.cpp
  3. 88
      modules/java/generator/src/cpp/features2d_manual.hpp
  4. 6
      modules/java/generator/src/cpp/jni_part.cpp

@ -673,7 +673,7 @@ static int preprocessMSER_8uC3( MSCRNode* node,
int Ne, int Ne,
int edgeBlurSize ) int edgeBlurSize )
{ {
int srccpt = src.step-src.cols*3; int srccpt = (int)(src.step-src.cols*3);
const uchar* srcptr = src.ptr(); const uchar* srcptr = src.ptr();
const uchar* lastptr = srcptr+3; const uchar* lastptr = srcptr+3;
double* dxptr = dx.ptr<double>(); double* dxptr = dx.ptr<double>();

@ -75,9 +75,6 @@ protected:
} }
vector<KeyPoint> keypoints; vector<KeyPoint> keypoints;
vector<vector<Point> > msers;
CvMat src = image;
detector->detect(image, keypoints); detector->detect(image, keypoints);
if(keypoints.empty()) if(keypoints.empty())

@ -90,67 +90,68 @@ public:
//not supported: SimpleBlob, Dense //not supported: SimpleBlob, Dense
CV_WRAP static javaFeatureDetector* create( int detectorType ) CV_WRAP static javaFeatureDetector* create( int detectorType )
{ {
String name; //String name;
if (detectorType > DYNAMICDETECTOR) if (detectorType > DYNAMICDETECTOR)
{ {
name = "Dynamic"; //name = "Dynamic";
detectorType -= DYNAMICDETECTOR; detectorType -= DYNAMICDETECTOR;
} }
if (detectorType > PYRAMIDDETECTOR) if (detectorType > PYRAMIDDETECTOR)
{ {
name = "Pyramid"; //name = "Pyramid";
detectorType -= PYRAMIDDETECTOR; detectorType -= PYRAMIDDETECTOR;
} }
if (detectorType > GRIDDETECTOR) if (detectorType > GRIDDETECTOR)
{ {
name = "Grid"; //name = "Grid";
detectorType -= GRIDDETECTOR; detectorType -= GRIDDETECTOR;
} }
Ptr<FeatureDetector> fd;
switch(detectorType) switch(detectorType)
{ {
case FAST: case FAST:
name = name + "FAST"; fd = FastFeatureDetector::create();
break;
case STAR:
name = name + "STAR";
break;
case SIFT:
name = name + "SIFT";
break;
case SURF:
name = name + "SURF";
break; break;
//case STAR:
// fd = xfeatures2d::StarDetector::create();
// break;
//case SIFT:
// name = name + "SIFT";
// break;
//case SURF:
// name = name + "SURF";
// break;
case ORB: case ORB:
name = name + "ORB"; fd = ORB::create();
break; break;
case MSER: case MSER:
name = name + "MSER"; fd = MSER::create();
break; break;
case GFTT: case GFTT:
name = name + "GFTT"; fd = GFTTDetector::create();
break; break;
case HARRIS: case HARRIS:
name = name + "HARRIS"; fd = GFTTDetector::create();
break; break;
case SIMPLEBLOB: case SIMPLEBLOB:
name = name + "SimpleBlob"; fd = SimpleBlobDetector::create();
break;
case DENSE:
name = name + "Dense";
break; break;
//case DENSE:
// name = name + "Dense";
// break;
case BRISK: case BRISK:
name = name + "BRISK"; fd = BRISK::create();
break; break;
case AKAZE: case AKAZE:
name = name + "AKAZE"; fd = AKAZE::create();
break; break;
default: default:
CV_Error( Error::StsBadArg, "Specified feature detector type is not supported." ); CV_Error( Error::StsBadArg, "Specified feature detector type is not supported." );
break; break;
} }
return new javaFeatureDetector(FeatureDetector::create(name)); return new javaFeatureDetector(fd);
} }
CV_WRAP void write( const String& fileName ) const CV_WRAP void write( const String& fileName ) const
@ -332,43 +333,44 @@ public:
//not supported: Calonder //not supported: Calonder
CV_WRAP static javaDescriptorExtractor* create( int extractorType ) CV_WRAP static javaDescriptorExtractor* create( int extractorType )
{ {
String name; //String name;
if (extractorType > OPPONENTEXTRACTOR) if (extractorType > OPPONENTEXTRACTOR)
{ {
name = "Opponent"; //name = "Opponent";
extractorType -= OPPONENTEXTRACTOR; extractorType -= OPPONENTEXTRACTOR;
} }
Ptr<DescriptorExtractor> de;
switch(extractorType) switch(extractorType)
{ {
case SIFT: //case SIFT:
name = name + "SIFT"; // name = name + "SIFT";
break; // break;
case SURF: //case SURF:
name = name + "SURF"; // name = name + "SURF";
break; // break;
case ORB: case ORB:
name = name + "ORB"; de = ORB::create();
break;
case BRIEF:
name = name + "BRIEF";
break; break;
//case BRIEF:
// name = name + "BRIEF";
// break;
case BRISK: case BRISK:
name = name + "BRISK"; de = BRISK::create();
break;
case FREAK:
name = name + "FREAK";
break; break;
//case FREAK:
// name = name + "FREAK";
// break;
case AKAZE: case AKAZE:
name = name + "AKAZE"; de = AKAZE::create();
break; break;
default: default:
CV_Error( Error::StsBadArg, "Specified descriptor extractor type is not supported." ); CV_Error( Error::StsBadArg, "Specified descriptor extractor type is not supported." );
break; break;
} }
return new javaDescriptorExtractor(DescriptorExtractor::create(name)); return new javaDescriptorExtractor(de);
} }
CV_WRAP void write( const String& fileName ) const CV_WRAP void write( const String& fileName ) const

@ -24,15 +24,9 @@ JNI_OnLoad(JavaVM* vm, void* )
return -1; return -1;
bool init = true; bool init = true;
#ifdef HAVE_OPENCV_FEATURES2D
init &= cv::initModule_features2d();
#endif
#ifdef HAVE_OPENCV_VIDEO #ifdef HAVE_OPENCV_VIDEO
init &= cv::initModule_video(); init &= cv::initModule_video();
#endif #endif
#ifdef HAVE_OPENCV_CONTRIB
init &= cv::initModule_contrib();
#endif
if(!init) if(!init)
return -1; return -1;

Loading…
Cancel
Save