BoardScanner es un proyecto de procesamiento digital de imágenes desarrollado como parte de la asignatura de Imagen Digital dentro del Grado en Ingeniería Informática en Ingeniería del Software de la Universidad de Extremadura.
El sistema utiliza OpenCV y TensorFlow, entre otras bibliotecas, para realizar el análisis y procesado de imágenes, funcionando como una herramienta que escanea pizarras y realiza distintos tipos de transformaciones y reconocimientos en las capturas obtenidas.
- Escaneo de imágenes de pizarras capturadas por cámaras.
- Variedad de transformaciones como detección de bordes, máscaras en HSV, y umbrales adaptativos.
- Implementación de modelos de reconocimiento de caracteres, incluidos KNN, Perceptrón Multi-Capa (MLP) y Google Vision API.
- Servidor web con Flask para visualizar en tiempo real el procesamiento de las imágenes en diferentes etapas.
- Python 3.10 o superior.
- Internet para el uso de Google Cloud Vision API.
-
Clona el repositorio:
git clone https://github.com/rdereparadores/BoardScanner.git cd BoardScanner -
Instala las dependencias:
pip install -r requirements.txt
-
Asegúrate de tener configuradas tus credenciales de Google Vision API si utilizarás esta funcionalidad.
Ejecuta la aplicación principal desde main.py para iniciar el procesamiento y el servidor web:
python main.pyLa aplicación estará disponible localmente en el puerto 8080. Navega a http://localhost:8080 en tu navegador para interactuar con la interfaz provista.
BoardScanner/
├── boardscanner/ # Módulos principales del procesamiento
│ ├── Config.py # Configuración general
│ ├── Globals.py # Variables y estado global
│ ├── Utils.py # Funciones utilitarias
│ ├── callbacks.py # Callbacks para procesos
│ ├── main_loop.py # Loop principal de procesamiento
│ ├── train_mlp.py # Entrenamiento de modelo MLP
│ ├── emnist_sample.keras # Modelo preentrenado
├── img/ # Ejemplos de imágenes procesadas
│ ├── pizarraia_1.png
│ ├── pizarraia_2.png
│ ├── ...
├── templates/ # Plantillas HTML
│ ├── index.html
├── main.py # Script principal
├── requirements.txt # Dependencias del proyecto