3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
關於Android OPENCV安裝篇請參考: Android Studio OPENCV 安裝步驟   新增相機拍照權限以及相機橫向展示還有自動對焦 <uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> 示範 XML <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <org.opencv.android.JavaCameraView android:id="@+id/java_camera_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> android.support.constraint.ConstraintLayout> JAVA public class focus extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2{ JavaCameraView javaCameraView; static String TAG="MainActivity"; Mat mRgba,input,imgGray; private MTCameraView mOpenCvCameraView; BaseLoaderCallback mLoaderCallBack = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { super.onManagerConnected(status); switch (status){ case BaseLoaderCallback.SUCCESS:{ javaCameraView.enableView(); break; } default:{ super.onManagerConnected(status); break; } } } }; static { System.loadLibrary("native-lib"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.focus); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//螢幕保持橫向 javaCameraView = (JavaCameraView)findViewById(R.id.java_camera_view); javaCameraView.setCvCameraViewListener(this); javaCameraView.setFocusable(true); javaCameraView.enableView(); } //取得手機螢幕控制 @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION //影藏狀態欄和標題欄 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION //全頻顯示 | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); //影藏手機虛擬按鍵HOME/BACK/LIST } } synchronized void start() { try { } catch (RuntimeException re) { Log.w(TAG, "Unexpected exception while focusing", re); } } @Override protected void onPause(){ super.onPause(); if(javaCameraView!=null) javaCameraView.disableView(); } @Override protected void onDestroy(){ super.onDestroy(); if(javaCameraView!=null) javaCameraView.disableView(); } @Override protected void onResume(){ super.onResume(); if (OpenCVLoader.initDebug()){ Log.i(TAG,"TRUE"); mLoaderCallBack.onManagerConnected(LoaderCallbackInterface.SUCCESS); }else { Log.i(TAG,"FALSE"); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_4_0,this,mLoaderCallBack); } } @Override public void onCameraViewStarted(int width, int height) { mRgba = new Mat(height,width, CvType.CV_8UC4); imgGray = new Mat(height,width, CvType.CV_8UC1); } @Override public void onCameraViewStopped() { mRgba.release(); } @Override public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { mRgba = inputFrame.rgba(); input = inputFrame.gray(); Imgproc.cvtColor(mRgba,imgGray,Imgproc.COLOR_RGB2GRAY); return mRgba; } }   展示 相關文章: [Android] Android 學習總集

本文由kk665403pixnetnetblog提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦