diff --git a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/ChessTrackActivity.java b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/ChessTrackActivity.java index ca640a73f6da632d360aaf77c5596094f2abcd64..f5f128e4ee70a18005fad3d400dc4c567c42f1cd 100644 --- a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/ChessTrackActivity.java +++ b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/ChessTrackActivity.java @@ -21,8 +21,7 @@ import android.view.SurfaceView; import android.view.WindowManager; import android.widget.EditText; -public class ChessTrackActivity extends Activity implements - CvCameraViewListener { +public class ChessTrackActivity extends Activity implements CvCameraViewListener { private static final String TAG = "CHESSTRACK::Activity"; private static final String IPV4_REGEX = "^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$"; @@ -39,10 +38,10 @@ public class ChessTrackActivity extends Activity implements private Manager _manager; private MenuItem _mItemCalibrar; private MenuItem _mItemServer; + private MenuItem _mItemJugar; private int _estado; - private final BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback( - this) { + private final BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { @@ -51,11 +50,11 @@ public class ChessTrackActivity extends Activity implements Log.i(TAG, "OpenCV loaded successfully"); _mOpenCvCameraView.enableView(); } - break; + break; default: { super.onManagerConnected(status); } - break; + break; } } }; @@ -63,8 +62,7 @@ public class ChessTrackActivity extends Activity implements @Override public void onResume() { super.onResume(); - OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, - mLoaderCallback); + OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback); } @Override @@ -92,10 +90,10 @@ public class ChessTrackActivity extends Activity implements alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int whichButton) { - _manager.setConnection("192.168.1.101", 5555); //FIXME DELETE !!!! + _manager.setConnection("192.168.1.101", 5555); // FIXME DELETE + // !!!! Editable value = input.getText(); - if (value == null || value.toString().equals("") - || !value.toString().matches(IPV4_REGEX)) { + if (value == null || value.toString().equals("") || !value.toString().matches(IPV4_REGEX)) { Log.i(TAG, "INPUT= not valid IP" + value.toString()); getServerIp(); } else { @@ -123,8 +121,7 @@ public class ChessTrackActivity extends Activity implements public void onClick(DialogInterface dialog, int whichButton) { Editable value = input.getText(); Log.i(TAG, "INPUT=" + value.toString()); - if (value == null || value.toString().equals("") - || !value.toString().matches(PORT_REGEX)) { + if (value == null || value.toString().equals("") || !value.toString().matches(PORT_REGEX)) { Log.i(TAG, "INPUT= not valid PORT" + value.toString()); getServerPort(ip); } else { @@ -145,6 +142,7 @@ public class ChessTrackActivity extends Activity implements Log.i(TAG, "called onCreateOptionsMenu"); _mItemCalibrar = menu.add("Calibrar.."); _mItemServer = menu.add("Conectar Server"); + _mItemJugar = menu.add("Jugar!!!"); return true; } @@ -157,6 +155,9 @@ public class ChessTrackActivity extends Activity implements } } else if (item == _mItemServer) { getServerIp(); + } else if (item == _mItemJugar) { + _estado = JUGAR; + } return true; } @@ -195,15 +196,16 @@ public class ChessTrackActivity extends Activity implements case CALIBRAR: Log.i(TAG, "calibrando..."); if (_manager.calibrar(inputFrame)) { - _estado = JUGAR; + // _estado = JUGAR; + _estado = IDLE; } else { _estado = IDLE; } break; case JUGAR: Log.i(TAG, "jugando..."); - return _manager.processFrame(inputFrame); - // break; + _manager.processFrame(inputFrame); + break; case IDLE: break; } diff --git a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/DetectorOclusion.java b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/DetectorOclusion.java index daa47d24eb9cbdfcdd162e3a2f2e029834d416b3..9ee874593e2ad7b8c05c1cc561035062d2e694c3 100644 --- a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/DetectorOclusion.java +++ b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/DetectorOclusion.java @@ -5,7 +5,7 @@ import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.Scalar; import org.opencv.core.Size; -import org.opencv.imgproc.*; +import org.opencv.imgproc.Imgproc; import org.opencv.video.BackgroundSubtractorMOG2; import android.util.Log; @@ -19,7 +19,7 @@ public class DetectorOclusion { private static final int ENVIAR_TABLERO = 3; private static final int START = -1; - private Mat _fgMaskMOG2; + private final Mat _fgMaskMOG2; private Mat _resultado; private BackgroundSubtractorMOG2 _pMOG2; private final Mat _morphKernel; @@ -48,6 +48,9 @@ public class DetectorOclusion { } public boolean hayNuevoTableroValido(Mat inputFrame) { + if (_estadoACTUAL == START){ + _pMOG2 = new BackgroundSubtractorMOG2(); // MOG2 approach + } Log.i(TAG, "Procesar!"); Log.i(TAG, "Region SIZE=" + inputFrame.size()); diff --git a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/Manager.java b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/Manager.java index 40e50b3262b976864d0c84de86b4336641fad370..5790a3889c86819b32453f54adcf923ce46069e5 100644 --- a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/Manager.java +++ b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/Manager.java @@ -38,7 +38,7 @@ public class Manager { _salida = NOT; _adquisicion = null; _client = null; - _debug = true; + _debug = false; } public static Manager getInstance() { @@ -110,18 +110,18 @@ public class Manager { break; case JUGANDO: Log.i(TAG, "Jugando"); - //if (_detectorOclusion.hayNuevoTableroValido(region)) { + if (_detectorOclusion.hayNuevoTableroValido(region)) { Log.i(TAG, "Tablero Valido"); // llamar al modelador Mat aux = _modelador.getMatrizFichas(region); Log.i(TAG, "MATRIZ=" + aux.dump()); - region = _modelador.dibujarEscaquesSobel(2); + //region = _modelador.dibujarEscaquesSobel(2); if (_salida == OK) { _client.SendData("Nuevo Tablero Valido!\n"); _client.SendData(" ".concat(aux.dump().concat("\n"))); } - //} + } break; }