Python application implementing a two-phase image filter — histogram equalization and Gaussian convolution — with an interactive tkinter GUI. Simulates a mobile-style photo filter with real-time visualization and color style switching.
This project demonstrates core image processing concepts applied to a practical use case: a "mobile camera filter" pipeline. Users can load an image, apply preprocessing techniques sequentially, and compare results interactively.
| Tool | Purpose |
|---|---|
| Python | Core language |
| OpenCV | Image processing (convolution, histogram) |
| NumPy | Matrix operations |
| tkinter | Graphical user interface |
| Matplotlib | Result visualization and color maps |
Img-preprocessing-techniques/
├── interfaz.py # Main entry point — launches the GUI
├── hist.py # Histogram equalization module (standalone test)
├── convolucion_proyecto.py # Gaussian convolution module (standalone test)
├── images/
│ ├── original_equalized.png
│ └── interfaz.png
└── README.md
Improves image contrast by redistributing pixel intensity values across the histogram range. This enhances fine details that may be lost in low-contrast images.
Original image → Spread intensity distribution → Improved contrast
Applies a Gaussian kernel via convolution to smooth the image. Multiple kernel sizes are available for testing. A cmap parameter allows applying different color styles post-processing.
Equalized image → Gaussian kernel convolution → Styled output
Run the main interface:
python interfaz.pyWorkflow:
- Enter the image filename in the text box
- Click Start to load and display the image
- Click Equalize to apply histogram equalization
- Click Apply Gaussian Filter to run the convolution
- Select one of 3 color styles to apply a visual effect
# Test histogram equalization only
python hist.py
# Test Gaussian convolution only
python convolucion_proyecto.pypip install opencv-python numpy matplotlib
tkinteris included in the Python standard library.
- Histogram equalization for contrast enhancement
- 2D convolution with Gaussian kernels
- Real-time image processing pipeline
- GUI design with tkinter
- Matplotlib color maps for visual styling
Kevin Joan Delgado Pérez - Tecnológico de Monterrey