# Computer Vision Lab — Start Here

Installation of required libs and environment:

## Install Conda/Miniconda first, then run the setup script (recommended)

1) Install a Conda distribution:
   - **Miniforge (recommended)** — conda + mamba, preconfigured for conda‑forge: https://conda-forge.org/download/
     Notes: https://github.com/conda-forge/miniforge
   - **Miniconda** (official): https://www.anaconda.com/docs/getting-started/miniconda/install

2) Open a new terminal and run **ONE** of these:
```bash
# Linux / macOS
bash scripts/setup_env.sh

# Windows PowerShell
powershell -ExecutionPolicy Bypass -File scripts/setup_env.ps1
```

These will create/update an environment named **computer_vision** from `environment.yml`
(NumPy, Matplotlib, Pillow, scikit‑image, ImageIO, JupyterLab, IPyKernel, OpenCV from conda‑forge)
and register the Jupyter kernel **Python (computer_vision)**.
After that, start JupyterLab and select that kernel.

## Notes & references
- Miniforge (conda‑forge installer with mamba): https://conda-forge.org/download/
- Miniconda install docs: https://www.anaconda.com/docs/getting-started/miniconda/install
- Conda envs from `environment.yml`: https://docs.conda.io/projects/conda/en/stable/commands/env/create.html
- Register Jupyter kernel (IPyKernel): https://ipython.readthedocs.io/en/9.1.0/install/kernel_install.html


### OpenCV modules expected

- **Conda (recommended):** `libopencv opencv py-opencv` from **conda-forge**. These builds ship the Python bindings (`cv2`) plus most **free** contrib modules (non-free is disabled).
- **Pip fallback:** `opencv-contrib-python` (CPU-only) provides contrib modules but **excludes non-free algorithms** by design.
- The notebook's **capability probe** cell checks a broad set of free contrib features (e.g., `cv2.xfeatures2d.FREAK_create`, `cv2.ximgproc.createSuperpixelSLIC`, `cv2.aruco`, `cv2.xphoto`, `cv2.dnn_superres`, `cv2.face`, `cv2.SIFT` exist .
