Commit 86f7a357 authored by Alexander Smorkalov's avatar Alexander Smorkalov

Tutorial-5 functionality implemented.

parent 24c920a3
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 {
public CustomJavaCameraView(Context context, AttributeSet attrs) { public CustomJavaCameraView(Context context, AttributeSet attrs) {
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);
} }
} }
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; ...@@ -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 ...@@ -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 ...@@ -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) { public Mat onCameraFrame(Mat inputFrame) {
mOpenCvCameraView.setVisibility(SurfaceView.GONE); return inputFrame;
mIsJavaCamera = !mIsJavaCamera; }
if (mIsJavaCamera) { @Override
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial5_activity_java_surface_view); public boolean onCreateOptionsMenu(Menu menu) {
toastMesage = "Java Camera"; List<String> effects = mOpenCvCameraView.getEffectList();
}
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE); mEffectMenuItems = new MenuItem[effects.size()];
mOpenCvCameraView.setCvCameraViewListener(this);
mOpenCvCameraView.enableView();
Toast toast = Toast.makeText(this, toastMesage, Toast.LENGTH_LONG);
toast.show();
}
int idx = 0;
ListIterator<String> itr = effects.listIterator();
while(itr.hasNext()) {
String element = itr.next();
mEffectMenuItems[idx] = menu.add(element);
idx++;
}
return true; return true;
} }
public void onCameraViewStarted(int width, int height) { public boolean onOptionsItemSelected(MenuItem item) {
} Log.i(TAG, "called onOptionsItemSelected; selected item: " + item);
mOpenCvCameraView.setEffect((String) item.getTitle());
public void onCameraViewStopped() { return true;
}
public Mat onCameraFrame(Mat inputFrame) {
return inputFrame;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment