Tutorial-1-Java -> Tutorial-1-CameraPreview
Issues fix.
This commit is contained in:
parent
507e2dc0ad
commit
9a2d6f854b
@ -9,7 +9,7 @@
|
|||||||
android:icon="@drawable/icon"
|
android:icon="@drawable/icon"
|
||||||
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
|
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
|
||||||
|
|
||||||
<activity android:name="Sample1Java"
|
<activity android:name="Sample1CameraPreview"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:screenOrientation="landscape"
|
android:screenOrientation="landscape"
|
||||||
android:configChanges="keyboardHidden|orientation">
|
android:configChanges="keyboardHidden|orientation">
|
||||||
|
@ -1,152 +0,0 @@
|
|||||||
package org.opencv.samples.tutorial2;
|
|
||||||
|
|
||||||
import org.opencv.android.BaseLoaderCallback;
|
|
||||||
import org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame;
|
|
||||||
import org.opencv.android.LoaderCallbackInterface;
|
|
||||||
import org.opencv.android.OpenCVLoader;
|
|
||||||
import org.opencv.core.Core;
|
|
||||||
import org.opencv.core.CvType;
|
|
||||||
import org.opencv.core.Mat;
|
|
||||||
import org.opencv.core.Point;
|
|
||||||
import org.opencv.core.Scalar;
|
|
||||||
import org.opencv.android.CameraBridgeViewBase;
|
|
||||||
import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2;
|
|
||||||
import org.opencv.imgproc.Imgproc;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
public class Sample2NativeCamera extends Activity implements CvCameraViewListener2 {
|
|
||||||
private static final String TAG = "OCVSample::Activity";
|
|
||||||
|
|
||||||
public static final int VIEW_MODE_RGBA = 0;
|
|
||||||
public static final int VIEW_MODE_GRAY = 1;
|
|
||||||
public static final int VIEW_MODE_CANNY = 2;
|
|
||||||
|
|
||||||
private static int viewMode = VIEW_MODE_RGBA;
|
|
||||||
private MenuItem mItemPreviewRGBA;
|
|
||||||
private MenuItem mItemPreviewGray;
|
|
||||||
private MenuItem mItemPreviewCanny;
|
|
||||||
private Mat mRgba;
|
|
||||||
private Mat mIntermediateMat;
|
|
||||||
|
|
||||||
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 Sample2NativeCamera() {
|
|
||||||
Log.i(TAG, "Instantiated new " + this.getClass());
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Called when the activity is first created. */
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
Log.i(TAG, "called onCreate");
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
|
||||||
|
|
||||||
setContentView(R.layout.tutorial2_surface_view);
|
|
||||||
|
|
||||||
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial2_activity_surface_view);
|
|
||||||
mOpenCvCameraView.setCvCameraViewListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPause()
|
|
||||||
{
|
|
||||||
super.onPause();
|
|
||||||
if (mOpenCvCameraView != null)
|
|
||||||
mOpenCvCameraView.disableView();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResume()
|
|
||||||
{
|
|
||||||
super.onResume();
|
|
||||||
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onDestroy() {
|
|
||||||
super.onDestroy();
|
|
||||||
if (mOpenCvCameraView != null)
|
|
||||||
mOpenCvCameraView.disableView();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onCameraViewStarted(int width, int height) {
|
|
||||||
mRgba = new Mat(height, width, CvType.CV_8UC4);
|
|
||||||
mIntermediateMat = new Mat(height, width, CvType.CV_8UC4);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onCameraViewStopped() {
|
|
||||||
mRgba.release();
|
|
||||||
mIntermediateMat.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
|
|
||||||
switch (Sample2NativeCamera.viewMode) {
|
|
||||||
case Sample2NativeCamera.VIEW_MODE_GRAY:
|
|
||||||
{
|
|
||||||
Imgproc.cvtColor(inputFrame.gray(), mRgba, Imgproc.COLOR_GRAY2RGBA, 4);
|
|
||||||
} break;
|
|
||||||
case Sample2NativeCamera.VIEW_MODE_RGBA:
|
|
||||||
{
|
|
||||||
mRgba = inputFrame.rgba();
|
|
||||||
Core.putText(mRgba, "OpenCV+Android", new Point(10, mRgba.rows() - 10), 3, 1, new Scalar(255, 0, 0, 255), 2);
|
|
||||||
} break;
|
|
||||||
case Sample2NativeCamera.VIEW_MODE_CANNY:
|
|
||||||
{
|
|
||||||
Imgproc.Canny(inputFrame.gray(), mIntermediateMat, 80, 100);
|
|
||||||
Imgproc.cvtColor(mIntermediateMat, mRgba, Imgproc.COLOR_GRAY2BGRA, 4);
|
|
||||||
} break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return mRgba;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
|
||||||
Log.i(TAG, "called onCreateOptionsMenu");
|
|
||||||
mItemPreviewRGBA = menu.add("Preview RGBA");
|
|
||||||
mItemPreviewGray = menu.add("Preview GRAY");
|
|
||||||
mItemPreviewCanny = menu.add("Canny");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
Log.i(TAG, "called onOptionsItemSelected; selected item: " + item);
|
|
||||||
if (item == mItemPreviewRGBA)
|
|
||||||
{
|
|
||||||
viewMode = VIEW_MODE_RGBA;
|
|
||||||
}
|
|
||||||
else if (item == mItemPreviewGray)
|
|
||||||
{
|
|
||||||
viewMode = VIEW_MODE_GRAY;
|
|
||||||
}
|
|
||||||
else if (item == mItemPreviewCanny)
|
|
||||||
{
|
|
||||||
viewMode = VIEW_MODE_CANNY;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,102 +0,0 @@
|
|||||||
package org.opencv.samples.tutorial3;
|
|
||||||
|
|
||||||
import org.opencv.android.BaseLoaderCallback;
|
|
||||||
import org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame;
|
|
||||||
import org.opencv.android.LoaderCallbackInterface;
|
|
||||||
import org.opencv.android.OpenCVLoader;
|
|
||||||
import org.opencv.core.CvType;
|
|
||||||
import org.opencv.core.Mat;
|
|
||||||
import org.opencv.android.CameraBridgeViewBase;
|
|
||||||
import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
public class Sample3Native extends Activity implements CvCameraViewListener2 {
|
|
||||||
private static final String TAG = "OCVSample::Activity";
|
|
||||||
|
|
||||||
private Mat mRgba;
|
|
||||||
private Mat mGray;
|
|
||||||
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");
|
|
||||||
|
|
||||||
// Load native library after(!) OpenCV initialization
|
|
||||||
System.loadLibrary("native_sample");
|
|
||||||
|
|
||||||
mOpenCvCameraView.enableView();
|
|
||||||
} break;
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
super.onManagerConnected(status);
|
|
||||||
} break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public Sample3Native() {
|
|
||||||
Log.i(TAG, "Instantiated new " + this.getClass());
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Called when the activity is first created. */
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
Log.i(TAG, "called onCreate");
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
|
||||||
|
|
||||||
setContentView(R.layout.tutorial3_surface_view);
|
|
||||||
|
|
||||||
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial4_activity_surface_view);
|
|
||||||
mOpenCvCameraView.setCvCameraViewListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPause()
|
|
||||||
{
|
|
||||||
super.onPause();
|
|
||||||
if (mOpenCvCameraView != null)
|
|
||||||
mOpenCvCameraView.disableView();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResume()
|
|
||||||
{
|
|
||||||
super.onResume();
|
|
||||||
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onDestroy() {
|
|
||||||
super.onDestroy();
|
|
||||||
if (mOpenCvCameraView != null)
|
|
||||||
mOpenCvCameraView.disableView();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onCameraViewStarted(int width, int height) {
|
|
||||||
mRgba = new Mat(height, width, CvType.CV_8UC4);
|
|
||||||
mGray = new Mat(height, width, CvType.CV_8UC1);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onCameraViewStopped() {
|
|
||||||
mRgba.release();
|
|
||||||
mGray.release();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
|
|
||||||
mRgba = inputFrame.rgba();
|
|
||||||
mGray = inputFrame.gray();
|
|
||||||
FindFeatures(mGray.getNativeObjAddr(), mRgba.getNativeObjAddr());
|
|
||||||
|
|
||||||
return mRgba;
|
|
||||||
}
|
|
||||||
|
|
||||||
public native void FindFeatures(long matAddrGr, long matAddrRgba);
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user