From b39f66ce740494e7054fd9df1274e47d7684349a Mon Sep 17 00:00:00 2001 From: Aylen Ricca <aricca@fing.edu.uy> Date: Mon, 28 Jul 2014 06:20:15 -0300 Subject: [PATCH] save image to file --- .../ChessTrack/AndroidManifest.xml | 1 + .../fing/chesstrack/ChessTrackActivity.java | 1 + .../fing/chesstrack/modulovision/Manager.java | 32 +++++++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/ProyectoAndroid/ChessTrack/AndroidManifest.xml b/ProyectoAndroid/ChessTrack/AndroidManifest.xml index 634c447..8ef4ec2 100644 --- a/ProyectoAndroid/ChessTrack/AndroidManifest.xml +++ b/ProyectoAndroid/ChessTrack/AndroidManifest.xml @@ -40,6 +40,7 @@ <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.CAMERA"/> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> diff --git a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/ChessTrackActivity.java b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/ChessTrackActivity.java index 43ea118..a31763a 100644 --- a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/ChessTrackActivity.java +++ b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/ChessTrackActivity.java @@ -194,6 +194,7 @@ public class ChessTrackActivity extends Activity implements case CALIBRAR: Log.i(TAG, "calibrando..."); if (_manager.calibrar(inputFrame)) { + _manager.iniciarJuego(); _estado = JUGAR; } else { _estado = IDLE; 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 65dc8fe..dd35b10 100644 --- a/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/Manager.java +++ b/ProyectoAndroid/ChessTrack/src/uy/edu/fing/chesstrack/modulovision/Manager.java @@ -1,13 +1,20 @@ package uy.edu.fing.chesstrack.modulovision; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.Date; + import org.opencv.core.CvType; import org.opencv.core.Mat; +import org.opencv.highgui.Highgui; +import org.opencv.imgproc.Imgproc; import uy.edu.fing.chesstrack.ajedrez.Logica; import uy.edu.fing.chesstrack.communication.Client; import uy.edu.fing.chesstrack.modulomodelador.Modelador; import android.media.AudioManager; import android.media.ToneGenerator; +import android.os.Environment; import android.util.Log; public class Manager { @@ -124,12 +131,13 @@ 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(1); + SaveImage(region); if (_logica.validarNuevoTablero(aux)) { if (_salida == OK) { @@ -139,7 +147,7 @@ public class Manager { _client.SendData(" ".concat(aux.dump().concat("\n"))); } } - } + //} break; } @@ -158,4 +166,22 @@ public class Manager { _client.Stop(); } } + + public void SaveImage (Mat mat) { + Mat mIntermediateMat = new Mat(); + Imgproc.cvtColor(mat, mIntermediateMat, Imgproc.COLOR_RGBA2BGR, 3); + + File path = new File(Environment.getExternalStorageDirectory() + "/DCIM/"); + path.mkdirs(); + String timeStamp = Integer.toString(_cantJugada++); + File file = new File(path, "image".concat(timeStamp).concat(".png")); + + String filename = file.toString(); + Boolean bool = Highgui.imwrite(filename, mIntermediateMat); + + if (bool) + Log.i(TAG, "SUCCESS writing image to external storage"); + else + Log.i(TAG, "Fail writing image to external storage"); + } } -- GitLab