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.Homografia; import uy.edu.fing.chesstrack.modulovision.imgproc.ImgProcInterface; import android.util.Log; public class Adquisicion { private static final String TAG = "CHESSTRACK::Adquisicion"; List<ImgProcInterface> _listProc; public Adquisicion() throws Exception { super(); Log.i(TAG, "Cargado...."); _listProc = new ArrayList<ImgProcInterface>(); _listProc.add(new Homografia()); //_listProc.add(new EcualizarImagen()); } /** * 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 tempImg = inputPicture; for (ImgProcInterface proc: _listProc){ tempImg = proc.procesarImagen(tempImg); } return tempImg; } }