title: OpenCV FeatureDetector
body: <p>I am trying to write a code that applies <strong>SURF</strong> object detection, so I took one of the openCV samples ( sample 3 ) and I started updating the <code>onCameraViewStarted()</code> and <code>onCameraFrame()</code> methods but I keep getting a runtime error when I try it on my galaxy S3 phone and I couldn't find anything to help with my problem here is my code and what I updated:</p>
  
  <pre><code>public class Sample3Native extends Activity implements CvCameraViewListener{
  
  private static final String TAG = "OCVSample::Activity";
  
  private Mat                    mRgba;
  private Mat                    mGrayMat;
  private CameraBridgeViewBase   mOpenCvCameraView;
  
  Mat descriptors ;           
  List&lt;Mat&gt; descriptorsList;
  
  FeatureDetector featureDetector;
  MatOfKeyPoint keyPoints;
  DescriptorExtractor descriptorExtractor;
  DescriptorMatcher descriptorMatcher;**
  
  
  private BaseLoaderCallback     mLoaderCallback = new BaseLoaderCallback(this) {
      @Override
      public void onManagerConnected(int status) {
          switch (status) {
              case LoaderCallbackInterface.SUCCESS:
              {
                  Log.i(TAG, "OpenCV loaded successfully");
  
                  // Load native library after(!) OpenCV initialization
                  System.loadLibrary("native_sample");
  
                  mOpenCvCameraView.enableView();
              } break;
              default:
              {
                  super.onManagerConnected(status);
              } break;
          }
      }
  };
  
  public void onCameraViewStarted(int width, int height) {
      mRgba = new Mat(height, width, CvType.CV_8UC4);
      mGrayMat = new Mat(height, width, CvType.CV_8UC1);
      featureDetector=FeatureDetector.create(4); // SURF= 4;
      descriptorExtractor=DescriptorExtractor.create(2);//SURF = 2
      descriptorMatcher=DescriptorMatcher.create(6); //BRUTEFORCE_SL2 = 6**
  
  }
  
   public Mat onCameraFrame(Mat inputFrame) {
      inputFrame.copyTo(mRgba);
      //detect_1(0, mRgba.getNativeObjAddr(), keyPoints.getNativeObjAddr());
      //Now mRgba contains the current frame ( start manipulation part)
      //detecting keypoints
      featureDetector.detect(mRgba, keyPoints);
      //draw keypoints
     // Features2d.drawKeypoints(mRgba, keyPoints, mRgba);
      //finding descriptors
      descriptorExtractor.compute(mRgba, keyPoints, descriptors);
      //Matcher between 2 images or set of images
      // Note: training set and query set are handled here! (in matcher)
     //descriptorsList = descriptorMatcher.getTrainDescriptors();
      //descriptorsList.add(descriptors);
     // descriptorMatcher.add(descriptorsList);
  
      //Imgproc.cvtColor(mRgba, mGrayMat, Imgproc.COLOR_RGBA2GRAY);
      //FindFeatures(mGrayMat.getNativeObjAddr(), mRgba.getNativeObjAddr());
  
      return mRgba;
  }
  }
  </code></pre>
  
  <p>Note: I have tried commenting everything but the <code>featureDetector.detect(mRgba, keyPoints)</code> in the <code>onCameraFrame()</code> method and still gave runtime error on my phone.</p>