Android アプリ開発 OpenCV カメラビュー
OpenCV を用いたカメラビューのサンプルコードAndroid for OpenCVを使ってカメラビューおよびビューをMatで取り込む方法
取り込んだ画像からいろいろな変換などができます。
/*-------------------------------------------------------------------------------------------------------------------
public class MainActivity extends Activity implements CvCameraViewListener{
private CameraBridgeViewBase mCameraView;
private Mat mOutputFrame;
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
mCameraView.enableView();
break;
default:
super.onManagerConnected(status);
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
mCameraView = (CameraBridgeViewBase)findViewById(R.id.camera_view);
mCameraView.setCvCameraViewListener(this);
}
@Override
public void onResume() {
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_6, this, mLoaderCallback);
}
@Override
public void onPause() {
super.onPause();
if (mCameraView != null) {
mCameraView.disableView();
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (mCameraView != null) {
mCameraView.disableView();
}
}
@Override
public void onCameraViewStarted(int width, int height) {
mOutputFrame = new Mat(height, width, CvType.CV_8UC1);
}
@Override
public void onCameraViewStopped() {
if(mOutputFrame != null)mOutputFrame.release();
mOutputFrame = null;
}
@Override
public Mat onCameraFrame(Mat inputFrame) {
//ここでビューから取り込んだ画像を取得できる
return inputFrame;
}
}
--------------------------------------------------------------------------------------*/
activity_main.xml
/*-----------------------------------------------------------------------------------
<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android
xmlns:tools=http://schemas.android.com/tools
xmlns:opencv=http://schemas.android.com/apk/res-auto
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
tools:context=".MainActivity" >
<org.opencv.android.JavaCameraView
android:id="@+id/camera_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="visible"
opencv:camera_id="any"
opencv:show_fps="true" />
</RelativeLayout>
------------------------------------------------------------------------------------------*/
0 件のコメント:
コメントを投稿