1 | package com.zhuangwu.camera;
|
2 |
|
3 | import org.opencv.android.BaseLoaderCallback;
|
4 | import org.opencv.android.CameraBridgeViewBase;
|
5 | import org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame;
|
6 | import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2;
|
7 | import org.opencv.android.LoaderCallbackInterface;
|
8 | import org.opencv.android.OpenCVLoader;
|
9 | import org.opencv.core.Mat;
|
10 |
|
11 | import android.app.Activity;
|
12 | import android.os.Bundle;
|
13 | import android.util.Log;
|
14 | import android.view.Menu;
|
15 | import android.view.MenuItem;
|
16 | import android.view.WindowManager;
|
17 |
|
18 | public class MainActivity extends Activity implements CvCameraViewListener2 {
|
19 | private CameraBridgeViewBase mOpencvcamera;
|
20 | private static final String TAG="OCVSample::Activity";
|
21 | private BaseLoaderCallback mLoaderCallback=new BaseLoaderCallback(this){
|
22 | public void onManagerConnected(int status){
|
23 | switch(status)
|
24 | {
|
25 | case LoaderCallbackInterface.SUCCESS:
|
26 | {
|
27 | Log.i(TAG,"Opencv loaded successfully");
|
28 | mOpencvcamera.enableView();
|
29 | }break;
|
30 | default:
|
31 | {
|
32 | super.onManagerConnected(status);
|
33 | }break;
|
34 | }
|
35 | }
|
36 | };
|
37 | public MainActivity(){
|
38 | Log.i(TAG, "Instantiated new " + this.getClass());
|
39 | }
|
40 | @Override
|
41 | protected void onCreate(Bundle savedInstanceState) {
|
42 | super.onCreate(savedInstanceState);
|
43 | getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
44 | setContentView(R.layout.activity_main);
|
45 | mOpencvcamera=(CameraBridgeViewBase) findViewById(R.id.fd_activity_surface_view);
|
46 |
|
47 | mOpencvcamera.setVisibility(CameraBridgeViewBase.VISIBLE);
|
48 | mOpencvcamera.setCvCameraViewListener(this);
|
49 | }
|
50 | public void onPause()
|
51 | {
|
52 | super.onPause();
|
53 | if (mOpencvcamera != null)
|
54 | mOpencvcamera.disableView();
|
55 | }
|
56 | public void onResume()
|
57 | {
|
58 | super.onResume();
|
59 | OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_11,this, mLoaderCallback);
|
60 | }
|
61 | @Override
|
62 | public void onCameraViewStarted(int width, int height) {
|
63 |
|
64 | }
|
65 |
|
66 | @Override
|
67 | public void onCameraViewStopped() {
|
68 |
|
69 |
|
70 | }
|
71 |
|
72 | @Override
|
73 | public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
|
74 |
|
75 | return inputFrame.rgba();
|
76 | }
|
77 | public void onDestroy() {
|
78 | super.onDestroy();
|
79 | mOpencvcamera.disableView();
|
80 | }
|
81 | @Override
|
82 | public boolean onCreateOptionsMenu(Menu menu) {
|
83 |
|
84 | getMenuInflater().inflate(R.menu.main, menu);
|
85 | return true;
|
86 | }
|
87 |
|
88 | @Override
|
89 | public boolean onOptionsItemSelected(MenuItem item) {
|
90 |
|
91 |
|
92 |
|
93 | int id = item.getItemId();
|
94 | if (id == R.id.action_settings) {
|
95 | return true;
|
96 | }
|
97 | return super.onOptionsItemSelected(item);
|
98 | }
|
99 |
|
100 |
|
101 |
|
102 |
|
103 | }
|