Skip to content

evya1/computer-vision-lab

Repository files navigation

Computer Vision Homeworks

Python repository for Computer Vision coursework assignments.

Setup

Requires uv.

uv sync

This creates .venv/ and installs all dependencies.

Running Q1 Data-Loading Scaffold

uv run python scripts/hw01/run_q1.py

Expected output: a summary of loaded shapes and paths. The reconstruction algorithm is not implemented yet — that is intentional.

Lint and Tests

uv run ruff check .
uv run pytest -q

Repository Layout

data/hwXX/          — raw assignment data (never overwrite)
notebooks/hwXX/     — submission-oriented Jupyter notebooks
src/cv_homeworks/   — importable Python package
  hwXX/             — assignment-specific modules
scripts/hwXX/       — runnable scripts for each question
outputs/hwXX/       — generated outputs (gitignored, .gitkeep placeholders)
tests/hwXX/         — pytest tests
docs/hwXX/          — implementation plans and notes

Raw Data

Path Contents
data/hw01/q1_house/ House dataset: two views, camera matrices, matched points, reference outputs
data/hw01/q2_vase/ Vase GIF for Q2

File-type note: house_1.jpg and house_2.jpg are PNG images despite the .jpg extension. The raw filenames are preserved. Image loaders use Pillow (content-based decoding) so the mismatch is transparent.

Reference outputs (matches_connected.jpg, matches_xy_projected.jpg, reconstruction.gif) live in data/hw01/q1_house/ and must not be overwritten. Generated outputs go to outputs/hw01/q1/.

Notebooks

Path Status
notebooks/hw01/q1_metric_reconstruction.ipynb Template — data loading ready, algorithm TODO
notebooks/hw01/q2_sfm_novel_view_synthesis.ipynb Placeholder

Generated Outputs

Generated files go under outputs/ (gitignored). Only .gitkeep placeholders are tracked so the directory structure exists in a fresh clone.

Current Status

Component Status
Repository scaffold Done
uv project + deps Done
Path constants Done
Q1 data-loading infrastructure Done
Q1 algorithm (triangulation, GIF, etc.) Not implemented
Q2 Not implemented

PyCharm Setup

  1. Open the repository root in PyCharm.
  2. Run uv sync in a terminal.
  3. Select the interpreter at .venv/bin/python (Settings → Project → Python Interpreter → Add → Existing → .venv/bin/python).
  4. Mark src/ as a Sources Root if PyCharm does not infer it automatically (right-click src/Mark Directory as → Sources Root).
  5. Run tests with uv run pytest -q.
  6. Run lint with uv run ruff check ..
  7. Run scripts from the repository root, for example:
    uv run python scripts/hw01/run_q1.py

About

Computer vision coursework repository focused on geometric vision, feature matching, structure-from-motion, reconstruction, and reproducible Python experiments.

Topics

Resources

License

Stars

Watchers

Forks

Contributors