Hands-on computer vision labs covering image processing fundamentals through advanced techniques — from pixel-level operations to frequency-domain analysis, geometric transformations, and morphological processing.
Each lab includes:
- Jupyter Notebook — fully documented implementations (NumPy from-scratch + OpenCV)
- LaTeX Report — theory, experiments, and analysis
- Cheatsheet — quick-reference for key functions and formulas
| Lab | Topic | Key Techniques |
|---|---|---|
| 01 | Histogram & Point Processing | Histogram equalization, gamma correction, log transform, thresholding |
| 02 | Arithmetic, Logical Ops & 2D Convolution | Image arithmetic, Otsu thresholding, custom convolution kernel |
| 03 | Spatial & Frequency Domain Processing | DFT/FFT, ideal LP/HP filters, Gaussian/median denoising, Canny edge detection, mini-project: image enhancement pipeline |
| 04 | Geometric Transformations | Translation, scaling, rotation, shearing — forward & inverse mapping |
| 05 | Morphological Operations | Erosion, dilation, opening, closing — binary & grayscale morphology |
From-Scratch Implementations
- 2D convolution with zero-padding (NumPy) — verified against
cv2.filter2D - Morphological erosion/dilation from scratch
- Forward & inverse geometric mapping
End-to-End Mini-Project (Lab 03)
Two parallel image enhancement pipelines handling different noise types:
Noisy Image → Denoise → Sharpen → Edge Detect
| Stage | Gaussian Noise Pipeline | Salt & Pepper Pipeline |
|---|---|---|
| Denoise | GaussianBlur (5×5) | MedianBlur (5×5) |
| Sharpen | Unsharp masking | Unsharp masking |
| Edge Detect | Canny (30/80) | Canny (30/80) |
├── lab-01/ Histogram & point processing
│ ├── lab01_BuiQuangChien_23001837.ipynb
│ ├── lab01_report.tex
│ ├── important_functions_cheatsheet.md
│ └── Data/
├── lab-02/ Arithmetic, logical ops & convolution
│ ├── lab02_arithmetics_logical_operations.ipynb
│ ├── lab02_report.tex
│ ├── lab02_cheatsheet.tex
│ └── data/
├── lab-03/ Spatial & frequency domain + mini-project
│ ├── lab_03_spatial_frequency.ipynb
│ ├── lab03_report.tex
│ ├── lab03_cheatsheet.{md,tex}
│ └── data/
└── lab-04-05/ Geometric transforms & morphology
├── lab_04_Geometric_Transformations.ipynb
└── lab_05_morphology_operation.ipynb
| Category | Tools |
|---|---|
| Language | Python 3 |
| Core Libraries | NumPy, OpenCV, scikit-image, Matplotlib |
| Environment | Jupyter Notebook, Google Colab |
| Documentation | LaTeX (custom templates), Markdown |
pip install numpy opencv-python scikit-image matplotlib jupyterOpen any notebook:
jupyter notebook lab-01/lab01_BuiQuangChien_23001837.ipynbBùi Quang Chiến — MSSV 23001837
Computer Science, Hanoi University of Science — VNU