An interactive web application for applying 27 image processing operations across 10 categories — built with Streamlit and pure NumPy.
| Category | Operations |
|---|---|
| Point Operations | Addition, Subtraction, Division, Complement |
| Color Manipulation | Red channel shift, Swap R↔G, Eliminate red |
| Histogram Enhancement | Contrast stretching, Equalization |
| Linear Filters | Average (smoothing), Laplacian (sharpening) |
| Non-Linear Filters | Max, Min, Median, Mode |
| Image Restoration | Salt & Pepper + filters, Gaussian + averaging |
| Segmentation | Basic / Automatic / Adaptive thresholding |
| Edge Detection | Sobel detector |
| Morphology | Dilation, Erosion, Opening |
| Boundary Extraction | Internal, External, Morphological gradient |
# 1. Clone the repository
git clone https://github.com/MoamenElbarqy/image-processing.git && cd image-processing
# 2. Create a virtual environment
python -m venv .venv && source .venv/bin/activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Run the app
streamlit run app.pyThe app opens at http://localhost:8501.
image-processing/
├── app.py # Streamlit entry point & UI
├── requirements.txt # Python dependencies
├── README.md
│
└── core/ # Pure processing algorithms (no UI)
├── utils.py # clamp, grayscale, RGB helpers
├── convolution.py # Low-level convolution engine
├── point_ops.py # Pixel-wise arithmetic
├── color_ops.py # Channel manipulation
├── histogram.py # Stretching & equalization
├── filters.py # Average, Laplacian, neighborhood
├── noise.py # Salt-pepper & Gaussian noise
├── restoration.py # Outlier filter, image averaging
├── segmentation.py # Thresholding techniques
├── edge_detection.py # Sobel detector
└── morphology.py # Dilation, erosion, boundaries
- Frontend: Streamlit (reactive web UI)
- Image Processing: NumPy (manual convolution & filtering)
- Image I/O: Pillow (PIL)
This project is for educational purposes.