Skip to content
Snippets Groups Projects
Commit fdb9c475 authored by Aylen Ricca's avatar Aylen Ricca
Browse files

fixed estados & thresholds

parent 162d42e5
No related branches found
No related tags found
No related merge requests found
......@@ -16,7 +16,7 @@ public class Modelador {
private static final String TAG = "CHESSTRACK::Modelador";
private final int CANT_FILAS = 8;
private final int CANT_SCAQUE = CANT_FILAS * CANT_FILAS;
private final int MIN_CANT_PIX_WHITE = 50;
private final int MIN_CANT_PIX_WHITE = 30;
private Mat tablero;
// se cuentan de arrib a abajo y de izquierda a derecha
private final Mat[][] escaques;
......@@ -140,6 +140,7 @@ public class Modelador {
Mat mIntermediateMat = new Mat();
int pos_x = 0;
int pos_y = 0;
Log.i(TAG, "cant_pix_INI");
for (int i = 0; i < CANT_FILAS; i++) {
for (int j = 0; j < CANT_FILAS; j++) {
pos_x = (int) (escaques[i][j].size().width * i);
......@@ -153,6 +154,10 @@ public class Modelador {
Core.convertScaleAbs(mIntermediateMat, mIntermediateMat, 10, 0);
Imgproc.threshold(mIntermediateMat, mIntermediateMat, 70, 255,
Imgproc.THRESH_BINARY);
Imgproc.erode(mIntermediateMat, mIntermediateMat, Imgproc.getStructuringElement(Imgproc.MORPH_RECT,new Size(1, 1)));
Imgproc.dilate(mIntermediateMat, mIntermediateMat, Imgproc.getStructuringElement(Imgproc.MORPH_RECT,new Size(1, 1)));
int cant_pix = mIntermediateMat.cols()
* mIntermediateMat.rows();
int cant_pix_white = Core.countNonZero(mIntermediateMat);
......@@ -167,6 +172,9 @@ public class Modelador {
}
break;
case 2:
if (cant_pix_white > (MIN_CANT_PIX_WHITE)) {
Log.i(TAG, "NUEVA FICHA" + (i+1) + "-" + (j+1));
}
Imgproc.cvtColor(mIntermediateMat, subm, Imgproc.COLOR_GRAY2RGBA, 4);
break;
default:
......@@ -176,6 +184,7 @@ public class Modelador {
}
}
}
Log.i(TAG, "cant_pix_FIN");
return tmp;
}
......
......@@ -16,6 +16,7 @@ public class DetectorOclusion {
private static final int OCLUSION = 0;
private static final int ESTABLE = 1;
private static final int TRANSICION = 2;
private static final int ENVIAR_TABLERO = 3;
private static final int START = -1;
private Mat _fgMaskMOG2;
......@@ -38,6 +39,14 @@ public class DetectorOclusion {
Log.i(TAG, "constructor FIN");
}
public Mat get_resultado() {
return _resultado;
}
public void set_resultado(Mat _resultado) {
this._resultado = _resultado;
}
public boolean hayNuevoTableroValido(Mat inputFrame) {
Log.i(TAG, "Procesar!");
......@@ -59,30 +68,35 @@ public class DetectorOclusion {
_estadoANTERIOR = _estadoACTUAL;
if (suma.val[0] > 1250000) {
Log.i(TAG, "MANO !!!");
Log.i(TAG, "VEO MANO !!!");
_estadoACTUAL = OCLUSION;
/*Core.putText(_fgMaskMOG2, "MANO !!!", new Point(20, 20),
Core.FONT_HERSHEY_SIMPLEX, 0.8, new Scalar(255, 255, 0));*/
} else {
Log.i(TAG, "ESTABLE !!!");
if (_estadoANTERIOR == OCLUSION) {
/*Core.putText(_fgMaskMOG2, "TRANSI !!!", new Point(20, 20),
Core.FONT_HERSHEY_SIMPLEX, 0.8, new Scalar(255, 255, 0));*/
Log.i(TAG, "VEO TRANSICION !!!");
_estadoACTUAL = TRANSICION;
}
if (_estadoANTERIOR == TRANSICION) {
/*Core.putText(_fgMaskMOG2, "ESTABLE !!!", new Point(20, 20),
Core.FONT_HERSHEY_SIMPLEX, 0.8, new Scalar(255, 255, 0));*/
_estadoACTUAL = ESTABLE;
_estadoACTUAL = ENVIAR_TABLERO;
_pMOG2 = new BackgroundSubtractorMOG2(); // MOG2 approach
Log.i(TAG, "VEO ENVIAR !!!");
}
if (_estadoANTERIOR == ENVIAR_TABLERO){
_estadoACTUAL = ESTABLE;
Log.i(TAG, "VEO ESTABLE !!!");
}
}
Log.i(TAG, "END");
//Imgproc.cvtColor(_fgMaskMOG2, _resultado, Imgproc.COLOR_GRAY2RGBA, 4);
return (_estadoACTUAL == ESTABLE);
Imgproc.cvtColor(_fgMaskMOG2, _resultado, Imgproc.COLOR_GRAY2RGBA, 4);
return (_estadoACTUAL == ENVIAR_TABLERO);
}
}
......
......@@ -21,7 +21,7 @@ public class Manager {
+ "--------------------------------------------------------------------------\n"
+ " .:: CHESSTRACK ::. seguimiento de una partida de Ajedrez\n"
+ "\n"
+ " TImag 2014\n"
+ " TImag 2014\n"
+ " Nicolas Furquez - Aylen Ricca\n"
+ "--------------------------------------------------------------------------\n";
......@@ -110,8 +110,8 @@ public class Manager {
break;
case JUGANDO:
Log.i(TAG, "Jugando");
if (_detectorOclusion.hayNuevoTableroValido(region)) {
Log.i(TAG, "Tablero Valido\n");
//if (_detectorOclusion.hayNuevoTableroValido(region)) {
Log.i(TAG, "Tablero Valido");
// llamar al modelador
Mat aux = _modelador.getMatrizFichas(region);
Log.i(TAG, "MATRIZ=" + aux.dump());
......@@ -119,13 +119,14 @@ public class Manager {
if (_salida == OK) {
_client.SendData("Nuevo Tablero Valido!\n");
_client.SendData(aux.dump().concat("\n"));
_client.SendData(" ".concat(aux.dump().concat("\n")));
}
}
//}
break;
}
if (_debug) {
Log.i(TAG, "DEBUG");
Mat tmp = Mat.zeros(inputFrame.size(), CvType.CV_8UC4);
Mat matTMP = tmp.submat(Calibracion.getRectROI());
region.copyTo(matTMP);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment