Skip to content

ZwPwn/computer_vision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Vision

A collection of computer vision assignments covering image processing, panoramic stitching, image classification, and deep learning — implemented in Python using OpenCV, Keras, and TensorFlow.

Assignments

# Topic Report Key Techniques
1 Image Processing & Noise Removal Report (PDF) Median/Gaussian filtering, Salt & Pepper noise, Integral images, Projection profiling, Text segmentation
2 Panoramic Image Stitching Report (PDF) SIFT/SURF/ORB feature detection, Homography, BFMatcher, Planar/Cylindrical/Hybrid stitching
3 Image Classification (BoVW & SVM) Report (PDF) Bag of Visual Words, SIFT descriptors, SVM classification, KNN, Caltech & GTSRB datasets
4 Deep Learning for Image Classification Report (PDF) CNN, Keras, TensorFlow, Transfer Learning

Repository Structure

computer_vision/
├── 1/                          # Assignment 1: Image Processing
│   ├── generate.py             # Generate noisy images
│   ├── noise_free.py           # Noise-free image processing & text segmentation
│   ├── noise_gaussian.py       # Gaussian noise analysis
│   ├── noise_salt_and_pepper.py# Salt & pepper noise analysis
│   ├── Src/                    # Source modules
│   │   ├── filters.py          #   Custom median & Gaussian filters
│   │   ├── helper_functions.py #   Display utilities
│   │   ├── integral.py         #   Integral image computation
│   │   ├── noise.py            #   Noise generation functions
│   │   ├── projection_profiling.py # Horizontal/vertical projection
│   │   └── version.py
│   ├── Images/                 # Input & noisy images
│   └── Report/                 # Figures used in report
│       ├── gaussian/
│       ├── salt_n_pepper/
│       ├── projection/
│       └── text_segmentation/
│
├── 2/                          # Assignment 2: Panoramic Stitching
│   ├── main.py                 # Stitching pipeline entry point
│   ├── camera_params.yaml      # Camera calibration parameters
│   ├── src/
│   │   ├── answers/
│   │   │   ├── bfmatcher.py    #   Feature matching & homography
│   │   │   ├── image_operations.py # Image transformations
│   │   │   └── stitch/
│   │   │       ├── stitch_planar.py      # Planar stitching
│   │   │       ├── stitch_cylindrical.py # Cylindrical projection stitching
│   │   │       └── stitch_hybrid.py      # Hybrid stitching approach
│   │   └── helper/
│   │       ├── calibration_main.py
│   │       └── io.py
│   ├── calibrate/              # Camera calibration data
│   └── out/                    # Stitched panorama outputs
│
├── 3/                          # Assignment 3: Image Classification
│   ├── A.py                    # BoVW + SVM / KNN pipeline
│   ├── B_caltech.ipynb         # Caltech dataset analysis notebook
│   ├── B_gtsrb.ipynb           # GTSRB dataset analysis notebook
│   ├── Dataset 1/              # Caltech-Transportation dataset
│   ├── Dataset 2/              # GTSRB dataset
│   └── Data/                   # Pre-computed features (npy)
│
├── 4/                          # Assignment 4: Deep Learning
│   └── HW4_58105.ipynb         # CNN classification notebook
│
├── LICENSE                     # MIT License
└── README.md                   # This file

Getting Started

Prerequisites

  • Python 3.8+
  • OpenCV (with opencv-contrib-python for SIFT/SURF)
  • NumPy, Matplotlib
  • Keras, TensorFlow (for Assignment 4)
  • Jupyter Notebook (for .ipynb files)

Installation

git clone https://github.com/ZwPwn/computer_vision.git
cd computer_vision
pip install -r requirements.txt

Running

Each assignment is self-contained in its numbered directory:

# Assignment 1 — Image Processing
cd 1/
python generate.py          # Generate noisy images
python noise_free.py        # Run text segmentation pipeline
python noise_gaussian.py    # Analyze Gaussian noise removal
python noise_salt_and_pepper.py  # Analyze Salt & Pepper noise removal

# Assignment 2 — Panoramic Stitching
cd 2/
python main.py              # Run stitching pipeline

# Assignment 3 — Image Classification
cd 3/
python A.py                 # Run BoVW + SVM/KNN classification

# Assignment 4 — Deep Learning
# Open 4/HW4_58105.ipynb in Jupyter Notebook

Reports

Each assignment includes a detailed PDF report with methodology, results, and analysis:

  • Assignment 1Report.pdf: Filtering techniques, noise analysis, projection profiling, text segmentation
  • Assignment 2Report.pdf: Feature detection comparison (SIFT/SURF/ORB), panoramic stitching methods
  • Assignment 3Report.pdf: Bag of Visual Words, SVM vs KNN classification on transportation and traffic sign datasets
  • Assignment 4Report.pdf: Deep learning-based image classification using CNNs

Sample Results

Assignment 1 — Noise Removal & Text Segmentation
Gaussian Filtering Salt & Pepper Removal Text Segmentation
Gaussian S&P Segmentation

Projection Profiling:

Projection

Assignment 2 — Panoramic Stitching

Outputs are located in 2/out/ with results for multiple datasets and feature detection algorithms.


License

This project is licensed under the MIT License — see LICENSE for details.


Author

Grammenos-Georgios Polymeridis
Democritus University of Thrace — MSc Electrical & Computer Engineering
GitHub · Email

About

This is a repo dedicated to Computer Vision course solutions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors