Example usage for org.opencv.android JavaCameraView JavaCameraView

List of usage examples for org.opencv.android JavaCameraView JavaCameraView

Introduction

In this page you can find the example usage for org.opencv.android JavaCameraView JavaCameraView.

Prototype

public JavaCameraView(Context context, AttributeSet attrs) 

Source Link

Usage

From source file:com.projectcs2103t.openglestest.OpenGLES20Activity.java

License:Apache License

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    if (savedInstanceState != null) {
        mImageSizeIndex = savedInstanceState.getInt(STATE_IMAGE_SIZE_INDEX, 0);
    }//w  w  w .  j  a  va2 s  .  co m
    // Create a GLSurfaceView instance and set it
    // as the ContentView for this Activity
    final FrameLayout layout = new FrameLayout(this);
    layout.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
            FrameLayout.LayoutParams.MATCH_PARENT));
    setContentView(layout);

    /*
    backgroundView = new ImageView(this);
    backgroundView.setImageResource(R.drawable.ic_launcher);
    backgroundView.setLayoutParams(new FrameLayout.LayoutParams(
        FrameLayout.LayoutParams.MATCH_PARENT,
        FrameLayout.LayoutParams.MATCH_PARENT));
    layout.addView(backgroundView);*/

    mOpenCvCameraView = new JavaCameraView(this, mCameraIndex);
    mOpenCvCameraView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
            FrameLayout.LayoutParams.MATCH_PARENT));
    layout.addView(mOpenCvCameraView);
    mOpenCvCameraView.setCvCameraViewListener(this);

    Camera camera = Camera.open();
    Camera.Parameters parameters = camera.getParameters();
    camera.release();
    mSupportedImageSizes = parameters.getSupportedPreviewSizes();
    Camera.Size size = mSupportedImageSizes.get(mImageSizeIndex);
    mOpenCvCameraView.setMaxFrameSize(size.width, size.height);
    mCameraProjectionAdapter = new CameraProjectionAdapter();
    mCameraProjectionAdapter.setCameraParameters(parameters, size);
    mCameraProjectionAdapter.setClipDistances(0.1f, 1000.0f);

    mGLView = new MyGLSurfaceView(this, mCameraProjectionAdapter);
    mGLView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
            FrameLayout.LayoutParams.MATCH_PARENT));
    layout.addView(mGLView);
}

From source file:org.lasarobotics.vision.opmode.VisionOpModeCore.java

License:Open Source License

@Override
public void init() {
    //Initialize camera view
    BaseLoaderCallback openCVLoaderCallback = null;
    try {//from w ww . j  ava2  s .  com
        openCVLoaderCallback = new BaseLoaderCallback(hardwareMap.appContext) {
            @Override
            public void onManagerConnected(int status) {
                switch (status) {
                case LoaderCallbackInterface.SUCCESS: {
                    //Woohoo!
                    Log.d("OpenCV", "OpenCV Manager connected!");
                    openCVInitialized = true;
                }
                    break;
                default: {
                    super.onManagerConnected(status);
                }
                    break;
                }
            }
        };
    } catch (NullPointerException e) {
        error("Could not find OpenCV Manager!\r\n" + "Please install the app from the Google Play Store.");
    }

    final Activity activity = (Activity) hardwareMap.appContext;
    final VisionOpModeCore t = this;

    if (!OpenCVLoader.initDebug()) {
        Log.d("OpenCV", "Internal OpenCV library not found. Using OpenCV Manager for initialization");
        boolean success = OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, hardwareMap.appContext,
                openCVLoaderCallback);
        if (!success) {
            Log.e("OpenCV", "Asynchronous initialization failed!");
            error("Could not initialize OpenCV!\r\n"
                    + "Did you install the OpenCV Manager from the Play Store?");
        } else {
            Log.d("OpenCV", "Asynchronous initialization succeeded!");
        }
    } else {
        Log.d("OpenCV", "OpenCV library found inside package. Using it!");
        if (openCVLoaderCallback != null)
            openCVLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        else {
            Log.e("OpenCV", "Failed to load OpenCV from package!");
            return;
        }
    }

    while (!openCVInitialized) {
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    activity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            LinearLayout layout = new LinearLayout(activity);
            layout.setOrientation(LinearLayout.VERTICAL);

            layout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT));

            openCVCamera = new JavaCameraView(hardwareMap.appContext, 0);

            layout.addView(openCVCamera);
            layout.setVisibility(View.VISIBLE);

            openCVCamera.setCvCameraViewListener(t);
            if (openCVCamera != null)
                openCVCamera.disableView();
            openCVCamera.enableView();
            if (!openCVCamera.connectCamera(initialMaxSize, initialMaxSize))
                error("Could not initialize camera!\r\n"
                        + "This may occur because the OpenCV Manager is not installed,\r\n"
                        + "CAMERA permission is not allowed in AndroidManifest.xml,\r\n"
                        + "or because another app is currently locking it.");

            //Initialize FPS counter and sensors
            fps = new FPS();
            sensors = new Sensors();

            //Done!
            width = openCVCamera.getFrameWidth();
            height = openCVCamera.getFrameHeight();
            initialized = true;
        }
    });

    while (!initialized) {
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}