Newer
Older
package uy.edu.fing.chesstrack.modulovision;
import java.util.ArrayList;
import java.util.List;
import org.opencv.core.Mat;
import uy.edu.fing.chesstrack.modulovision.imgproc.BackgroundSupress;
import uy.edu.fing.chesstrack.modulovision.imgproc.Homografia;
import uy.edu.fing.chesstrack.modulovision.imgproc.ImgProcInterface;
import android.util.Log;
public class Adquisicion {
List<ImgProcInterface> listProc;
private static final String TAG = "CHESSTRACK::Adquisicion";
public Adquisicion() throws Exception {
super();
Log.i(TAG, "Cargado....");
listProc = new ArrayList<ImgProcInterface>();
listProc.add( new Homografia());
//listProc.add( new EcualizarImagen());
//listProc.add( new SustraccionDeFondo());
//listProc.add( new BackgroundSupress());
}
/**
* PRocesa el frame pasado por parametro
* @param inputPicture
* @return
* ver http://dsp.stackexchange.com/questions/2805/how-does-opencv-find-chessboard-corners
* http://www.cvg.ethz.ch/teaching/2012fall/cvl/Tutorial-OpenCV.pdf
*/
public synchronized Mat processFrame(Mat inputPicture) {
Log.i(TAG, "processFrame inicia");
Mat salida = inputPicture;
Mat prevImg = inputPicture;
for (ImgProcInterface proc: listProc){
prevImg = proc.procesarImagen(prevImg);
}
return prevImg;
}