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

Whenever i use Imgproc.rectangle and Imgproc.circle function following error appears

$
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.Iterator; 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); Mat pointMatHsv; Mat heirarchy; Mat overlay; private static double mMinContourArea = 0.1; Mat hullMat; 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.setMaxFrameSize(720, 480); 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(); pointMatHsv = new Mat(1, 1, CvType.CV_8UC3); heirarchy = new Mat(); overlay = new Mat(1,1, CvType.CV_8UC3); } public void onCameraViewStopped() { } public Mat onCameraFrame(CvCameraViewFrame inputFrame) { mRgba = inputFrame.rgba(); mRgba.copyTo(pointMatHsv); Scalar CONTOUR_COLOR = new Scalar(255, 0, 0, 255); Imgproc.cvtColor(pointMatHsv, mGray, Imgproc.COLOR_RGB2HSV); Core.inRange(mGray, min, max, pointMatHsv); Imgproc.dilate(pointMatHsv, pointMatHsv, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(2, 2))); //Imgproc.dilate(mRgba, mRgba, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(2, 2))); Imgproc.erode(pointMatHsv, pointMatHsv, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(2, 2))); mGray = retContours(pointMatHsv,mRgba); return mRgba; } public Mat retContours(Mat pointMatHsv, Mat mRgba) { List contours = new ArrayList(); List mContours = new ArrayList(); Imgproc.findContours(pointMatHsv, contours, heirarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE); double maxArea = 0; Iterator each = contours.iterator(); while (each.hasNext()) { MatOfPoint wrapper = each.next(); double area = Imgproc.contourArea(wrapper); if (area > maxArea) maxArea = area; } // Imgproc.cvtColor(pointMatHsv,pointMatHsv,Imgproc.COLOR_HSV2RGB_FULL); mContours.clear(); each = contours.iterator(); while (each.hasNext()) { MatOfPoint contour = each.next(); if (Imgproc.contourArea(contour) > mMinContourArea * maxArea) { // Core.multiply(contour, new Scalar(4, 4), contour); mContours.add(contour); } } Imgproc.drawContours(mRgba,mContours,-1,new Scalar(0, 255, 0)); for(int i=0;i hullContours = new ArrayList(); MatOfPoint hullMat = new MatOfPoint(); hullMat.create((int) hull.size().height, 1, CvType.CV_32SC2); for (int j = 0; j < hull.size().height; j++) { int index = (int) hull.get(j, 0)[0]; double[] point = new double[]{ currentContour.get(index, 0)[0], currentContour.get(index, 0)[1] }; hullMat.put(j, 0, point); } hullContours.add(hullMat); Imgproc.drawContours(mRgba, hullContours, 0, new Scalar(0, 0, 255), 2); } private void drawBoundingBox(MatOfPoint currentContour) { Rect rectangle = Imgproc.boundingRect(currentContour); Imgproc.rectangle(mRgba, rectangle.tl(), rectangle.br(), new Scalar(255,0,0),1); } private void drawEnclosingCircle(MatOfPoint currentContour) { float[] radius = new float[1]; Point center = new Point(); MatOfPoint2f currentContour2f = new MatOfPoint2f(); currentContour.convertTo(currentContour2f, CvType.CV_32FC2); Imgproc.minEnclosingCircle(currentContour2f, center, radius); Imgproc.circle(mRgba, center, (int) radius[0], new Scalar(255,0,0)); } } and this error is thrown 02-03 19:20:05.338 29021-29113/org.opencv.samples.tutorial1 E/art﹕ No implementation found for void org.opencv.imgproc.Imgproc.rectangle_1(long, double, double, double, double, double, double, double, double, int) (tried Java_org_opencv_imgproc_Imgproc_rectangle_11 and Java_org_opencv_imgproc_Imgproc_rectangle_11__JDDDDDDDDI) 02-03 19:20:05.339 29021-29113/org.opencv.samples.tutorial1 E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-8072 Process: org.opencv.samples.tutorial1, PID: 29021 java.lang.UnsatisfiedLinkError: No implementation found for void org.opencv.imgproc.Imgproc.rectangle_1(long, double, double, double, double, double, double, double, double, int) (tried Java_org_opencv_imgproc_Imgproc_rectangle_11 and Java_org_opencv_imgproc_Imgproc_rectangle_11__JDDDDDDDDI) at org.opencv.imgproc.Imgproc.rectangle_1(Native Method) at org.opencv.imgproc.Imgproc.rectangle(Imgproc.java:2779) at org.opencv.samples.tutorial1.Tutorial1Activity.drawBoundingBox(Tutorial1Activity.java:204) at org.opencv.samples.tutorial1.Tutorial1Activity.retContours(Tutorial1Activity.java:172) at org.opencv.samples.tutorial1.Tutorial1Activity.onCameraFrame(Tutorial1Activity.java:137) at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:393) at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:346) at java.lang.Thread.run(Thread.java:818) 02-03 19:20:05.359 29021-29021/org.opencv.samples.tutorial1 D/Java

Viewing all articles
Browse latest Browse all 41027

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>