MainActivity.java

庄武 庄, 2015-04-07 01:43 pm

Download (3.1 kB)

 
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
                // TODO Auto-generated method stub        
64
        }
65
66
        @Override
67
        public void onCameraViewStopped() {
68
                // TODO Auto-generated method stub
69
                
70
        }
71
72
        @Override
73
        public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
74
                // TODO Auto-generated method stub
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
                // Inflate the menu; this adds items to the action bar if it is present.
84
                getMenuInflater().inflate(R.menu.main, menu);
85
                return true;
86
        }
87
88
        @Override
89
        public boolean onOptionsItemSelected(MenuItem item) {
90
                // Handle action bar item clicks here. The action bar will
91
                // automatically handle clicks on the Home/Up button, so long
92
                // as you specify a parent activity in AndroidManifest.xml.
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
}