Android:Cannot draw contours

asked 2016-01-23 14:05:40 -0500

Poovamraj gravatar image

package org.opencv.samples.tutorial1;

import org.opencv.android.BaseLoaderCallback; import org.opencv.android.CameraBridgeViewBase; import org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame; import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2; import org.opencv.android.LoaderCallbackInterface; import org.opencv.android.OpenCVLoader; import org.opencv.core.*; //import org.opencv.highgui.Highgui; import org.opencv.imgproc.Imgproc;

import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.MotionEvent; import android.view.SurfaceView; import android.view.View; import android.view.View.OnTouchListener; import android.view.WindowManager;

import com.example.imgloader.R;

import java.util.ArrayList; import java.util.List;

public class Tutorial1Activity extends Activity implements CvCameraViewListener2 {

private static final String TAG = "OCVSample::Activity";
private Mat mRgba;
private Mat mGray;
private CameraBridgeViewBase mOpenCvCameraView;
Scalar min=new Scalar(0,30,60,0);
Scalar max=new Scalar(20,150,255,0);

// Size three=new Size(3,3); //Size eight=new Size(8,8); //Mat erodeElement= Imgproc.getStructuringElement(Imgproc.MORPH_RECT,three); //Mat dilateElement=Imgproc.getStructuringElement(Imgproc.MORPH_RECT,eight);

 Mat hierarchy=new Mat();

Scalar CONTOUR_COLOR = new Scalar(255,0,0,255);

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
    @Override
    public void onManagerConnected(int status) {
        switch (status) {
            case LoaderCallbackInterface.SUCCESS:
            {
                Log.i(TAG, "OpenCV loaded successfully");
                mOpenCvCameraView.enableView();

            } break;
            default:
            {
                super.onManagerConnected(status);
            } break;
        }
    }
};

public Tutorial1Activity() {
    Log.i(TAG, "Instantiated new " + this.getClass());
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    Log.i(TAG, "called onCreate");
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    setContentView(R.layout.tutorial1_surface_view);

    mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial1_activity_java_surface_view);

    mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);

    mOpenCvCameraView.setCvCameraViewListener(this);
}

@Override
public void onPause()
{
    super.onPause();
    if (mOpenCvCameraView != null)
        mOpenCvCameraView.disableView();
}

@Override
public void onResume()
{
    super.onResume();
    OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
}

public void onDestroy() {
    super.onDestroy();
    if (mOpenCvCameraView != null)
        mOpenCvCameraView.disableView();
}


public void onCameraViewStarted(int width, int height) {
    mGray = new Mat();
    mRgba = new Mat();



}

public void onCameraViewStopped() {
}

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    mRgba = inputFrame.rgba();
   List<MatOfPoint> contours =new ArrayList<MatOfPoint>();
    Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGB2HSV);
    Core.inRange(mGray, min, max, mRgba);
//  Imgproc.erode(mRgba, mGray, new Mat());
  //  Imgproc.dilate(mGray,mRgba, new Mat());

   Imgproc.findContours(mRgba,contours,hierarchy,Imgproc.RETR_EXTERNAL,Imgproc.CHAIN_APPROX_SIMPLE);





    //     Minimum size allowed for consideration
    for(int idx=0;idx<contours.size();idx++)

      Imgproc.drawContours(mRgba,contours,idx,CONTOUR_COLOR);





    return mRgba;
}

}

This is my code but whenever I run it I get the following errors in the logcat NOTE: I tried this code by seeing the sample codes

01-24 01:27:39.089 7697-7697/org.opencv.samples.tutorial1 I/art﹕ Late-enabling -Xcheck:jni 01-24 01:27:39.114 7697-7707/org.opencv.samples.tutorial1 I/art﹕ Debugger is no longer active 01-24 01:27:39.226 7697-7697/org.opencv.samples.tutorial1 I/LoadedApk﹕ No resource references to update in package common 01-24 01:27:39.226 7697-7697/org.opencv.samples.tutorial1 I/LoadedApk﹕ No resource references to update in package com.cyngn.hexo 01-24 01:27:39.229 7697-7697/org.opencv.samples.tutorial1 E/art﹕ No implementation found for long org.opencv.core.Mat.n_Mat() (tried Java_org_opencv_core_Mat_n_1Mat and Java_org_opencv_core_Mat_n_1Mat__) 01-24 01:27:39.230 7697-7697 ... (more)

edit retag flag offensive close merge delete