A robust web application and REST API designed for digital image processing. This project features a collection of custom-implemented algorithms optimized for performance using vectorization and multiprocessing.
-
Custom Algorithm Implementation: Core image filters and processing logic built from scratch using NumPy and OpenCV for low-level data handling.
-
Optimized Performance: Leverages Python's multiprocessing for parallel execution and vectorization to handle large image matrices efficiently.
-
Modern Web Interface: Clean and responsive UI built with React.
-
Backend: Python, Flask, NumPy, OpenCV.
-
Frontend: React, JavaScript (ES6+).
-
DevOps: Docker, Docker Compose.
Every filter includes detailed documentation, including pseudocode and logic explanations. You can explore the core implementations in the documentacion-implementacion/ directory:
Main Project: Mosaic Filter
git clone https://github.com/JAntonioBarrientos/Digital-Image-Processing-Project.git
cd Digital-Image-Processing-Project
If you wish to use the Mosaic filter, place your source image library in:
backend/models/data/image_library/
Launch the entire stack (Frontend + Backend) with a single command:
docker compose up --buildOpen your browser and navigate to:
http://localhost:3000
If you prefer to run the components separately without Docker:
cd backend
python3 -m venv venv
source venv/bin/activate # Or venv\Scripts\activate on Windows
pip install -r requirements.txt
python app.pycd frontend
npm install
npm startThe core of this project focuses on reducing computational time. By replacing standard nested loops with NumPy vectorization, we achieved significant speedups in matrix manipulation, while the Multiprocessing module ensures that CPU-intensive filters utilize all available cores.
Distributed under the MIT License. See LICENSE for more information.