Loading repository data…
Loading repository data…
medamineharbaoui / repository
This project implements a stereo camera calibration pipeline using OpenCV in Python, as part of a computer vision lab. It processes a dataset of 100 stereo image pairs with a chessboard pattern to Classify image pairs based on chessboard visibility, Perform intrinsic calibration for both cameras and Remove distortion.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
This project implements a stereo camera calibration pipeline using OpenCV in Python, as part of a computer vision lab. It processes a dataset of 100 stereo image pairs (cam3 as left, cam4 as right) with a chessboard pattern to:
The dataset consists of 100 pairs (0__cam3.png to 99__cam3.png and 0__cam4.png to 99__cam4.png), each containing an 11x8 chessboard (10x7 inner corners).
Image_Calibration/
├── dataset/ # Dataset folder (see Setup section)
├── instructions/ # Dataset folder (see Setup section)
│ └──Lab.pdf # Instruction document
├── outputs/ # Output files (calibration YAMLs)
│ ├── stereo_pairs.pkl # Saved stereo pairs from Task 1
│ ├── cam3_calibration.yaml
│ └── cam4_calibration.yaml
├── scripts/ # Python scripts
│ ├── classification.py # Task 1: Classify image pairs
│ ├── calibration.py # Task 2: Calibrate cameras
│ └── distortion_removal.py # Task 3: Remove distortion
├── screenshots/ # Screenshots for documentation
│ ├── selection.png # Task 1 Results
│ ├── calibration.png # Task 2 Results
│ ├── cam3-original-vs-undistorted.png and # Task 3 Results
│ └── cam3-original-vs-undistorted.png # Task 3 Results
├── requirements.txt # Required dependencies
└── README.md # Project documentation
requirements.txt:
opencv-pythonnumpypyyaml (for YAML file handling)To install dependencies, run:
pip install -r requirements.txt
git clone https://github.com/medamineharbaoui/Image_Calibration
cd Image_Calibration
Download the dataset from this link and extract it into the dataset/ folder within the project directory. The structure should be:
dataset/
├── cam1/
├── cam2/
├── cam3/ # Left camera images
├── cam4/ # Right camera images
If your dataset is elsewhere, update the paths in the scripts (dataset_dir = "../dataset").
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Classifies stereo pairs based on chessboard visibility.
classification.pyRun:
cd scripts
python classification.py
Output:
../outputs/stereo_pairs.pkl.Performs intrinsic calibration for cam3 and cam4.
calibration.pyRun:
python calibration.py
Output:
../outputs/cam3_calibration.yaml and ../outputs/cam4_calibration.yaml.Undistorts sample images and displays results.
distortion_removal.pyRun:
python distortion_removal.py
Output:
See screenshots folder :
../dataset/, ../outputs/), assuming execution from scripts/.scale_factor in distortion_removal.py if needed.cv.findChessboardCorners, cv.calibrateCamera, cv.undistort.This project is for educational purposes.