This repository contains an educational journey through Digital Image Processing (DIP) using Jupyter Notebooks, blending:
- Clear theoretical explanations
- Mathematical foundations
- Visual intuition
- Real-world examples
- Python implementations
The content is inspired by:
- The course βProcessamento Digital de Imagensβ taught by Prof. Dr. Jesuliana N. Ulysses (UFSJ)
- The book βA Computational Introduction to Digital Image Processingβ β Alasdair McAndrew
This project aims to be a self-contained learning path for students and practitioners, offering:
- Interactive notebooks that build concepts step-by-step
- Hands-on exercises to reinforce learning
- Real images & experiments to visualize concepts
- Clean modular structure, mirroring a university-level DIP course
- A foundation for future computer vision topics (filters, segmentation, ML, CV tasks)
Start in the first module:
π 01-introduction/01-introduction.ipynb
Then follow notebooks in numeric order. Each module contains:
- Core theory notebook(s)
- Python experiments
- Exercises
- Practice activities
- Concept notebook β understand theory
- Code demo notebook β experiment visually
- Exercises β confirm understanding
- Practice notebooks β explore real world challenges
image-processing/
β
βββ 01-introduction/
β βββ notebooks/
β β βββ 01-introduction.ipynb
β β βββ 02-digital-images.ipynb
β β βββ 03-sampling-quantization.ipynb
β β βββ 04-python-environment.ipynb
β β βββ 05-first-operations.ipynb
β β
β βββ exercises/
β β βββ Exercise01.ipynb
β β
β βββ practices/
β β βββ Practice01.ipynb
β β
β βββ images/
β β βββ source/
β β β βββ lena_gray.png
β β β βββ cameraman.png
β β β βββ ...
β βββ βββ outputs/
β
βββ 02-fundamentals/
β βββ notebooks/
β βββ exercises/
β βββ practices/
β βββ images/
β β βββ source/
β βββ βββ outputs/
β
β 03-.../
β 04-.../
β
βββ README.mdπ Each folder = one learning module π Each module = theory + experiments + exercises + practice
We use the standard Python image-science stack:
- Python 3
- NumPy β matrix & pixel operations
- Matplotlib β plotting & visualization
- OpenCV (
cv2) β image processing toolbox - scikit-image (
skimage) β scientific image algorithms - Jupyter Notebook β interactive learning environment
All notebooks are written for clarity and intuition, using:
- Step-by-step explanations
- Visual reasoning
- Code comments & inline notes
- Side-by-side original vs processed results
- Notebook questions & reflection prompts
Where applicable, we also include:
- Pixel grids
- Histograms
- Annotated diagrams
- Progressive examples (simple β real images)
Course materials by Prof. Dr. Jesuliana N. Ulysses (UFSJ) A Computational Introduction to Digital Image Processing β Alasdair McAndrew
Caio Fromm π GitHub: https://github.com/fromcaio
