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; } }