SHARE
TWEET
Trouble setting exposure with android
a guest
May 16th, 2016
138
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- package com.williams.drew.opencvtest;
- import android.graphics.Paint;
- import android.hardware.camera2.CameraDevice;
- import android.hardware.camera2.CameraMetadata;
- import android.hardware.camera2.CaptureRequest;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.util.Log;
- import android.view.SurfaceView;
- import android.view.WindowManager;
- import org.opencv.android.JavaCameraView;
- 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.Core;
- import org.opencv.core.CvType;
- import org.opencv.core.Mat;
- import org.opencv.imgproc.Imgproc;
- public class MainActivity extends AppCompatActivity implements CvCameraViewListener2 {
- //Prefixes for logging success and failure messages
- private static final String TAG = "OCVSample::Activity";
- //Loads camera view of OpenCV for us to use. This lets us see using OpenCV
- private CameraBridgeViewBase mOpenCvCameraView;
- //Preview Builder which changes exposure (i think)
- private CaptureRequest.Builder mPreviewRequestBuilder;
- private CaptureRequest mPreviewRequest;
- private long exposureTime = 1000,frameDuration = 1000;
- private int sensitivity = 200;
- //OPENCV Variables
- Mat matRGBA;
- public MainActivity() {
- 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.show_camera);
- mOpenCvCameraView = (JavaCameraView) findViewById(R.id.show_camera_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();
- if(!OpenCVLoader.initDebug()) {
- Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for init");
- OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_1_0, this, mLoaderCallback);
- }
- else {
- Log.d(TAG, "OpenCV library found inside package. Using it!");
- mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
- }
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- if(mOpenCvCameraView != null) {
- mOpenCvCameraView.disableView();
- }
- }
- 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;
- }
- }
- };
- @Override
- public void onCameraViewStarted(int width, int height) {
- mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF);
- mPreviewRequestBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, Long.valueOf(exposureTime));
- mPreviewRequestBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, Integer.valueOf(sensitivity));
- mPreviewRequestBuilder.set(CaptureRequest.SENSOR_FRAME_DURATION, Long.valueOf(frameDuration));
- matRGBA = new Mat(width, height, CvType.CV_8UC4);
- }
- @Override
- public void onCameraViewStopped() {
- matRGBA.release();
- }
- @Override
- public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
- matRGBA = inputFrame.rgba();
- return matRGBA;
- }
- }
RAW Paste Data
