An advanced, interactive educational platform for Digital Image Processing (DIP). This application provides a hands-on, visually rich environment for understanding complex computer vision algorithms, mathematical transformations, and electromagnetic spectrum fundamentals.
It features a custom-built "PronOS" clean light theme for maximum readability and a professional UX.
Organized into interactive Chapters:
- Chapter 1: Fundamentals of Image Formation:
1.1Visual Perception (Scotopic/Photopic adaptation, Mach bands)1.2Electromagnetic Spectrum1.3Image Acquisition topology
- Chapter 2: Image Digitization:
2.1Sampling & Quantization resolution testing2.2Pixel Connectivity (4, 8, m-paths)2.3Distance Measures
- Chapter 3: Image Representation & Math Tools:
3.1Mathematical Tools (Interactive 6-tab suite for Arithmetic, Statistical, Trigonometric, Transforms, Morphology, and Filtering)3.2Connected Components3.3Image Statistics
- Chapter 4: Advanced Vision Concepts:
4.13D Eye Vision Game Model: A sophisticated physics engine demonstrating light rays tracking a visual object into the eye.Anatomical Eye Exploration: Interactive, dynamically rendered 2D eye cross-section. Toggle labels, highlight physiological features, and physically mutate sliders (Pupil Dilation, Lens Thickness, Cornea Bulge) to simulate Myopia and Astigmatism directly onto an image feed!
- Chapter 5: Spatial Domain Processing:
5.1Spatial Filtering (Convolution, median, and Gaussian blur kernels)
- Chapter 6: Frequency Domain Processing:
6.1Frequency Domain (Ideal, Butterworth, and Gaussian filtering)
- Chapter 7: Morphological Image Processing:
7.1Morphology (Erosion, Dilation, Opening, Closing routines)
- Native Streamlit Light & Dark Mode: The custom CSS seamlessly inherits Streamlit's native theme engine without aggressive overrides. Toggle between light and dark modes in the settings menu for a pixel-perfect, highly readable aesthetic in any environment.
- Unified Global Image Override: Upload a custom image directly from the unified sidebar to inject it simultaneously across a dozen different physics and mathematical simulations across the app's chapters.
- Frontend / Framework: Streamlit
- Image Processing: OpenCV (
opencv-python-headless) - Math & Matrices: NumPy, SciPy
- Plotting: Matplotlib
-
Clone the repository:
git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git cd YOUR_REPOSITORY -
Create a Virtual Environment (Recommended):
python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
Install Dependencies:
pip install -r requirements.txt
-
Run the Application:
streamlit run app.py
This repository is fully configured to deploy as a Docker Container on the Render Free Tier, driven automatically by GitHub pushes.
Streamlit apps running complex image processing libraries (like OpenCV) often crash on standard cloud hosting due to missing C++ system dependencies. We have included a Dockerfile that automatically handles these Linux dependencies (like libgl1-mesa-glx) so the app runs flawlessly. The included render.yaml acts as a one-click deployment blueprint.
- Push to GitHub:
Ensure this codebase is pushed to a public or private GitHub repository.
git remote add origin https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git git push -u origin main
- Connect Render:
- Sign up / Log in to Render Dashboard.
- Click the New + button and select Blueprint.
- Deploy:
- Connect your GitHub account.
- Select the repository where you pushed this code.
- Render will automatically detect the
render.yamlfile. - Click Apply.
Render will now read the blueprint, build the Docker container using our Dockerfile, install OpenCV and Streamlit, and generate a live URL for your application!
Note: Because this uses the Render Free Tier, the application will "spin down" after 15 minutes of inactivity. When you visit it again, it may take 30-50 seconds to wake up.
├── app.py # Main Streamlit application and routing
├── requirements.txt # Python dependencies
├── .gitignore # Standard Python/Streamlit ignore file
└── chapter2_experiments/ # Modular logic files for various chapters
├── connected_components.py
├── distance_measures.py
├── image_statistics.py
├── pixel_relationships.py
└── sampling_quantization_extended.py