AndroidでOpencvを使って処理した動画をSDカードに保存する方法を教えてください。
Opencvを使ってカメラ画像をリアルタイム処理することは下記のコードでできているため、
これに画像を動画ファイルとしてまとめ保存するための方法を知りたいです。
よろしくお願いします。
public class MainActivity extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener {
private static final String TAG = "OCVSample::Activity";
private Mat outputFrame;
private Mat baseFrame;
private CameraBridgeViewBase mOpenCvCameraView;
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this){ @Override public void onManagerConnected(int status){ switch(status){ case LoaderCallbackInterface.SUCCESS: { Log.i(TAG, "OpenCV loaded successfully"); mOpenCvCameraView.enableView(); }break; default: { super.onManagerConnected(status); }break; } } }; public MainActivity(){ Log.i(TAG, "instantiated new" + this.getClass()); } /** Called when the activity is first created*/ @Override protected void onCreate(Bundle savedInstanceState) { Log.i(TAG, "called onCreate"); super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setContentView(R.layout.activity_main); mOpenCvCameraView = (CameraBridgeViewBase)findViewById(R.id.tutorial1_activity_java_surface_view); mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE); mOpenCvCameraView.setCvCameraViewListener(this); } @Override public void onPause(){ super.onPause(); if(mOpenCvCameraView != null) mOpenCvCameraView.disableView(); } @Override public void onResume(){ super.onResume(); if(!OpenCVLoader.initDebug()){ Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization"); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_3_0, this, mLoaderCallback); }else{ Log.d(TAG, "OpenCV library found inside package. Using it!"); mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); } } public void onDestroy(){ super.onDestroy(); if(mOpenCvCameraView != null) mOpenCvCameraView.disableView(); } public void onCameraViewStarted(int width, int height){ outputFrame = new Mat(width, height, CV_8U); baseFrame = new Mat(width, height, CV_8U); } public void onCameraViewStopped(){ outputFrame.release(); baseFrame.release(); } public Mat onCameraFrame(Mat inputFrame){ Imgproc.cvtColor(inputFrame, outputFrame, Imgproc.COLOR_RGB2GRAY); return outputFrame; }
}
あなたの回答
tips
プレビュー