Quantcast
Channel: OpenCV Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 41027

Android:Cannot draw contours

$
0
0
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 contours =new ArrayList(); 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(Mat.java:24) at org.opencv.samples.tutorial1.Tutorial1Activity.(Tutorial1Activity.java:41) at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.Class.newInstance(Class.java:1606) at android.app.Instrumentation.newActivity(Instrumentation.java:1066) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2259) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) at android.app.ActivityThread.access$900(ActivityThread.java:154) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5294) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 01-24 01:27:44.895 7697-7709/org.opencv.samples.tutorial1 E/art﹕ No implementation found for void org.opencv.core.Mat.n_delete(long) (tried Java_org_opencv_core_Mat_n_1delete and Java_org_opencv_core_Mat_n_1delete__J) 01-24 01:27:44.895 7697-7709/org.opencv.samples.tutorial1 E/System﹕ Uncaught exception thrown by finalizer 01-24 01:27:44.896 7697-7709/org.opencv.samples.tutorial1 E/System﹕ java.lang.UnsatisfiedLinkError: No implementation found for void org.opencv.core.Mat.n_delete(long) (tried Java_org_opencv_core_Mat_n_1delete and Java_org_opencv_core_Mat_n_1delete__J) at org.opencv.core.Mat.n_delete(Native Method) at org.opencv.core.Mat.finalize(Mat.java:911) at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:191) at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:174) at java.lang.Thread.run(Thread.java:818) 01-24 01:28:53.319 7697-7707/org.opencv.samples.tutorial1 W/art﹕ Suspending all threads took: 25.885ms please help

Viewing all articles
Browse latest Browse all 41027

Trending Articles