Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.45 KB | None | 0 0
  1. package com.example.application;
  2.  
  3. import android.Manifest;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.content.pm.PackageManager;
  7. import android.os.Bundle;
  8.  
  9. import com.google.android.material.floatingactionbutton.FloatingActionButton;
  10. import com.google.android.material.snackbar.Snackbar;
  11.  
  12. import androidx.appcompat.app.AppCompatActivity;
  13. import androidx.appcompat.widget.Toolbar;
  14. import androidx.core.app.ActivityCompat;
  15. import androidx.core.content.ContextCompat;
  16.  
  17. import android.util.Log;
  18. import android.view.SurfaceView;
  19. import android.view.View;
  20. import android.view.Menu;
  21. import android.view.MenuItem;
  22.  
  23. import org.opencv.android.BaseLoaderCallback;
  24. import org.opencv.android.CameraBridgeViewBase;
  25. import org.opencv.android.JavaCameraView;
  26. import org.opencv.android.LoaderCallbackInterface;
  27. import org.opencv.android.OpenCVLoader;
  28. import org.opencv.core.CvType;
  29. import org.opencv.core.Mat;
  30.  
  31. public class MainActivity extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2
  32. {
  33.     private CameraBridgeViewBase cameraBridgeViewBase;
  34.  
  35.     Mat mat1;
  36.  
  37.     private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this)
  38.     {
  39.         @Override
  40.         public void onManagerConnected(int status) {
  41.             switch (status) {
  42.                 case LoaderCallbackInterface.SUCCESS:
  43.                 {
  44.                     //Log.d("TAG", "OpenCV loaded successfully");
  45.  
  46.                     cameraBridgeViewBase.enableView();
  47.  
  48.                     //mOpenCvCameraView.setOnTouchListener(MainActivity.this);
  49.                 } break;
  50.                 default:
  51.                 {
  52.                     super.onManagerConnected(status);
  53.                 } break;
  54.             }
  55.         }
  56.     };
  57.  
  58.     private void initOpenCV()
  59.     {
  60.         if (!OpenCVLoader.initDebug()) {
  61.             Log.d("OpenCV", "Internal OpenCV library not found. Using OpenCV Manager for initialization.");
  62.  
  63.             boolean success = OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION, this, mLoaderCallback);
  64.  
  65.             if (!success)
  66.                 Log.e("OpenCV", "Asynchronous initialization failed!");
  67.             else
  68.                 Log.d("OpenCV", "Asynchronous initialization succeeded!");
  69.         } else {
  70.             Log.d("OpenCV", "Using OpenCV library found inside package.");
  71.             mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
  72.         }
  73.     }
  74.  
  75.     @Override
  76.     public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
  77.     {
  78.         switch(requestCode)
  79.         {
  80.             case Permissions.PERMISSION_CAMERA:
  81.                 if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
  82.                 {
  83.                     initOpenCV();
  84.  
  85.                     if(cameraBridgeViewBase != null)
  86.                     {
  87.                         cameraBridgeViewBase.enableView();
  88.                     }
  89.                 }
  90.                 break;
  91.         }
  92.     }
  93.  
  94.     @Override
  95.     public void onPause()
  96.     {
  97.         super.onPause();
  98.  
  99.         if(cameraBridgeViewBase != null)
  100.         {
  101.             cameraBridgeViewBase.disableView();
  102.         }
  103.     }
  104.  
  105.     @Override
  106.     public void onStart()
  107.     {
  108.         super.onStart();
  109.  
  110.         if(ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)
  111.         {
  112.             if(cameraBridgeViewBase != null)
  113.             {
  114.                 cameraBridgeViewBase.enableView();
  115.             }
  116.         } else
  117.         {
  118.             ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, Permissions.PERMISSION_CAMERA);
  119.         }
  120.     }
  121.  
  122.     @Override
  123.     public void onResume()
  124.     {
  125.         super.onResume();
  126.  
  127.         if(ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)
  128.             initOpenCV();
  129.     }
  130.  
  131.     @Override
  132.     public void onDestroy()
  133.     {
  134.         super.onDestroy();
  135.     }
  136.  
  137.     @Override
  138.     protected void onCreate(Bundle savedInstanceState)
  139.     {
  140.         super.onCreate(savedInstanceState);
  141.         setContentView(R.layout.activity_main);
  142.         Toolbar toolbar = findViewById(R.id.toolbar);
  143.         setSupportActionBar(toolbar);
  144.  
  145.         cameraBridgeViewBase = (JavaCameraView)findViewById(R.id.cameraView);
  146.         cameraBridgeViewBase.setVisibility(SurfaceView.VISIBLE);
  147.         cameraBridgeViewBase.setCvCameraViewListener(this);
  148.     }
  149.  
  150.     @Override
  151.     public boolean onCreateOptionsMenu(Menu menu)
  152.     {
  153.         // Inflate the menu; this adds items to the action bar if it is present.
  154.         getMenuInflater().inflate(R.menu.menu_main, menu);
  155.         return true;
  156.     }
  157.  
  158.     @Override
  159.     public boolean onOptionsItemSelected(MenuItem item)
  160.     {
  161.         int id = item.getItemId();
  162.  
  163.         if (id == R.id.action_settings) {
  164.             startActivity(new Intent(this, SettingsActivity.class));
  165.             return true;
  166.         }
  167.  
  168.         return super.onOptionsItemSelected(item);
  169.     }
  170.  
  171.     @Override
  172.     public void onCameraViewStarted(int width, int height)
  173.     {
  174.         mat1 = new Mat(width, height, CvType.CV_8UC4);
  175.     }
  176.  
  177.     @Override
  178.     public void onCameraViewStopped()
  179.     {
  180.         mat1.release();
  181.     }
  182.  
  183.     @Override
  184.     public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
  185.         mat1 = inputFrame.rgba();
  186.         return mat1;
  187.     }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement