Tutorial-5 functionality implemented.

pull/191/head
Alexander Smorkalov 12 years ago
parent 24c920a33a
commit 86f7a357ae
  1. 19
      samples/android/tutorial-5-customcamera/src/org/opencv/samples/tutorial5/CustomJavaCameraView.java
  2. 62
      samples/android/tutorial-5-customcamera/src/org/opencv/samples/tutorial5/Sample5CustomCamera.java

@ -1,8 +1,11 @@
package org.opencv.samples.tutorial5; package org.opencv.samples.tutorial5;
import java.util.List;
import org.opencv.android.JavaCameraView; import org.opencv.android.JavaCameraView;
import android.content.Context; import android.content.Context;
import android.hardware.Camera;
import android.util.AttributeSet; import android.util.AttributeSet;
public class CustomJavaCameraView extends JavaCameraView { public class CustomJavaCameraView extends JavaCameraView {
@ -11,9 +14,17 @@ public class CustomJavaCameraView extends JavaCameraView {
super(context, attrs); super(context, attrs);
} }
@Override public List<String> getEffectList() {
protected boolean connectCamera(int width, int height) { return mCamera.getParameters().getSupportedColorEffects();
boolean result = super.connectCamera(width, height); }
return result;
public String getEffect() {
return mCamera.getParameters().getColorEffect();
}
public void setEffect(String effect) {
Camera.Parameters params = mCamera.getParameters();
params.setColorEffect(effect);
mCamera.setParameters(params);
} }
} }

@ -1,10 +1,12 @@
package org.opencv.samples.tutorial5; package org.opencv.samples.tutorial5;
import java.util.List;
import java.util.ListIterator;
import org.opencv.android.BaseLoaderCallback; import org.opencv.android.BaseLoaderCallback;
import org.opencv.android.LoaderCallbackInterface; import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.OpenCVLoader; import org.opencv.android.OpenCVLoader;
import org.opencv.core.Mat; import org.opencv.core.Mat;
import org.opencv.android.CameraBridgeViewBase;
import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener; import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener;
import android.app.Activity; import android.app.Activity;
@ -14,14 +16,12 @@ import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.SurfaceView; import android.view.SurfaceView;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.Toast;
public class Sample5CustomCamera extends Activity implements CvCameraViewListener { public class Sample5CustomCamera extends Activity implements CvCameraViewListener {
private static final String TAG = "OCVSample::Activity"; private static final String TAG = "OCVSample::Activity";
private CameraBridgeViewBase mOpenCvCameraView; private CustomJavaCameraView mOpenCvCameraView;
private boolean mIsJavaCamera = true; private MenuItem[] mEffectMenuItems;
private MenuItem mItemSwitchCamera = null;
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override @Override
@ -53,8 +53,7 @@ public class Sample5CustomCamera extends Activity implements CvCameraViewListene
setContentView(R.layout.tutorial5_surface_view); setContentView(R.layout.tutorial5_surface_view);
if (mIsJavaCamera) mOpenCvCameraView = (CustomJavaCameraView) findViewById(R.id.tutorial5_activity_java_surface_view);
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial5_activity_java_surface_view);
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE); mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
@ -82,44 +81,35 @@ public class Sample5CustomCamera extends Activity implements CvCameraViewListene
mOpenCvCameraView.disableView(); mOpenCvCameraView.disableView();
} }
@Override public void onCameraViewStarted(int width, int height) {
public boolean onCreateOptionsMenu(Menu menu) {
Log.i(TAG, "called onCreateOptionsMenu");
mItemSwitchCamera = menu.add("Switch camera");
return true;
} }
@Override public void onCameraViewStopped() {
public boolean onOptionsItemSelected(MenuItem item) {
String toastMesage = new String();
Log.i(TAG, "called onOptionsItemSelected; selected item: " + item);
if (item == mItemSwitchCamera) {
mOpenCvCameraView.setVisibility(SurfaceView.GONE);
mIsJavaCamera = !mIsJavaCamera;
if (mIsJavaCamera) {
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial5_activity_java_surface_view);
toastMesage = "Java Camera";
} }
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE); public Mat onCameraFrame(Mat inputFrame) {
mOpenCvCameraView.setCvCameraViewListener(this); return inputFrame;
mOpenCvCameraView.enableView();
Toast toast = Toast.makeText(this, toastMesage, Toast.LENGTH_LONG);
toast.show();
} }
return true; @Override
} public boolean onCreateOptionsMenu(Menu menu) {
List<String> effects = mOpenCvCameraView.getEffectList();
public void onCameraViewStarted(int width, int height) { mEffectMenuItems = new MenuItem[effects.size()];
}
public void onCameraViewStopped() { int idx = 0;
ListIterator<String> itr = effects.listIterator();
while(itr.hasNext()) {
String element = itr.next();
mEffectMenuItems[idx] = menu.add(element);
idx++;
}
return true;
} }
public Mat onCameraFrame(Mat inputFrame) { public boolean onOptionsItemSelected(MenuItem item) {
return inputFrame; Log.i(TAG, "called onOptionsItemSelected; selected item: " + item);
mOpenCvCameraView.setEffect((String) item.getTitle());
return true;
} }
} }

Loading…
Cancel
Save