La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sudoku Downloader and Recognizer Autor: Pedro Evaristo González Sánchez.

Presentaciones similares


Presentación del tema: "Sudoku Downloader and Recognizer Autor: Pedro Evaristo González Sánchez."— Transcripción de la presentación:

1 Sudoku Downloader and Recognizer Autor: Pedro Evaristo González Sánchez

2 Actividad principal (Portrait)

3 Actividad principal (Landscape)

4 Vista personalizada (Custom view) -Paint y Canvas para el dibujo de líneas, background y números -Adaptable ( OnSizeChanged ) -Autogestión de eventos ( onTouchEvent, onKeypressed ) -Interacción con la actividad principal ( contiene la Actividad )

5 Actividad principal - Custom View

6 Clase Sudoku (I) Matriz [9][9] de Enteros Sobrecarga del constructor ( String ) Para determinadas situaciones, devuelve una cadena que contiene todas las posiciones del Sudoku ( Bundle y Comunicación entre Actividades) Comprobación de vecindad ( fila, columna y bloque )

7 Clase Sudoku II ( Backtracking ) -Si estás en la casilla (9,9) => Finaliza -Si encuentras un dígito, continua a la casilla siguiente -Para cada valor Si cumple reglas de vecindad actualiza esta posición y - Sudoku(i+1,j+1) -Si no encuentras candidato, restaura y vuelve una posición atrás

8 Download Activity (I) -Tenemos un tablero alojado en un servidor web -Tablero bien formado incluido en un archivo txt -Queremos llevarlo a la aplicación para jugar. -Una forma de actualización de la misma.

9 Download Activity (II)

10 3. Reconocimiento del Sudoku 3.0 Conceptos previos dependientes de Android 3.1 Captura de la imagen 3.2 Procesamiento de la imagen (OpenCV) 3.3 Optical Chracter Recognition (OCR) Tesseract

11 3.0 Conceptos previos ( Android ) SDK y OpenCV Library (OpenCV) NDK (Native Developing Kit) ( Tesseract ) Construir las librerias y referenciarlas a nuestra aplicación

12 3.1 Captura de la imagen -Conectar con el Intent que se encarga de capturar imágenes -Capturamos y guardar la imagen en un archivo temporal -Pre-procesarla => Buscamos equilibrio entre buena calidad de imagen y Computabilidad.

13 3.2 Procesamiento de la Imagen (I) Primera gran controversia, la imagen capturada tiene perspectiva El concepto genérico es que procesamos a dos niveles: (RGB y GRAY)

14 Realizamos una detección de bordes A continuación, buscamos el contorno más grande que incluye la imagen. (ROI) Procesamiento de la Imagen (II)

15 Procesamiento de la Imagen (III) Aplicamos el algoritmo de Hough para la localización de las líneas en el tablero. El procesamiento de líneas tiene dos tareas fundamentales: Cada línea será eliminada, pintándolas del color que proceda en cada tipo de imagen. Cuando vaya a dibujar una línea tendré en cuenta si el comienzo o el final de la misma está en alguna esquina.

16 Procesamiento de la Imagen (IV) Cálculo de la matriz que define la transformación de perspectiva necesaria para pasar de las esquinas del Sudoku a las esquinas de la imagen completa. Aplicación de una WarpPerspective con dicha matriz.

17 Procesamiento de la Imagen (V) Es el momento de descomponer el tablero en celdas para poder procesarlas una a una.

18 Procesamiento de la Imagen (VI) En cada una de las celdas volvemos a realizar un procesamiento paralelo. ( Ahora pensando en las exigencias de Tesseract ) Equalizamos Histograma Threshold (Binarización) Suavizado(Smooth) + Dilatación findContours()

19 Tesseract ( OCR ) ¡No esperar milagros!. Es necesario un buen procesamiento Acotar diccionario solo a dígitos (1..9) Por cada número liberar memoria tanto de la imagen como del objeto Base de Tesseract. Hay menos recursos (teléfono). Tesseract 6

20 Gracias!!!. Hasta pronto!.


Descargar ppt "Sudoku Downloader and Recognizer Autor: Pedro Evaristo González Sánchez."

Presentaciones similares


Anuncios Google