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