Hands-on computer vision labs covering image processing fundamentals through advanced techniques. Topics range from pixel-level operations to frequency-domain analysis, geometric transformations, morphological operations, color processing, feature detection, segmentation, and deep learning (CNN, transfer learning).
Each lab includes:
- Jupyter Notebook — fully documented implementations (NumPy from-scratch + OpenCV)
- LaTeX Report — theory, experiments, and analysis (where applicable)
- 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, mini-project: enhancement pipeline |
| 04 | Geometric Transformations | Translation, scaling, rotation, shearing — forward & inverse mapping |
| 05 | Morphological Operations | Erosion, dilation, opening, closing — binary & grayscale morphology |
| 06 | Region-Based Segmentation | Region growing, split & merge, watershed |
| 07 | Edge-Based Segmentation | Active contours, graph cuts |
| 08 | Color Image Processing | HSV, Lab, color thresholding & segmentation |
| 09 | Color Spaces & Chromaticity | RGB, XYZ, CIE xy, white balance |
| 10 | HOG Features | Histogram of Oriented Gradients, rotation sensitivity |
| 11 | Local Features & Matching | Harris, SIFT, Lowe ratio, RANSAC homography |
| 12 | CNN & Deep Segmentation | Custom CNN, pretrained comparison, transfer learning, FCN, instance seg demos |
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)
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/ … lab-05/ Fundamentals (histogram, conv, FFT, geometry, morphology)
├── lab-06/ … lab-11/ Segmentation, color, HOG, local features
└── lab-12/ CNN, transfer learning, segmentation
├── lab12_BuiQuangChien_23001837.ipynb
├── binary_cnn.ipynb
├── CNN_multiclass_Keras.ipynb
├── lab12_pretrained_comparison.ipynb
├── image_segmentation.ipynb
├── lab12_cheatsheet.tex
└── docs/ Lab PDFs (CNN, fine-tuning, segmentation)
Lab 12 data: giải nén data/CNN_MultiClass_data.rar vào data/multiclass/ trước khi chạy notebook multiclass.
| Category | Tools |
|---|---|
| Language | Python 3 |
| Core Libraries | NumPy, OpenCV, scikit-image, Matplotlib |
| Deep Learning | TensorFlow, Keras, PyTorch |
| Environment | Jupyter Notebook, Google Colab |
| Documentation | LaTeX, Markdown |
pip install numpy opencv-python scikit-image matplotlib jupyter tensorflow keras torch torchvisionjupyter notebook lab-12/lab12_BuiQuangChien_23001837.ipynbBùi Quang Chiến — MSSV 23001837
Computer Science, Hanoi University of Science — VNU