Interactive computer vision fundamentals: https://davidl-11.github.io/Computer-Vision-Basics/
If you found this repository useful, please consider starring it on GitHub.
- Convolution & correlation
- Gaussian & separability
- Template matching
- Median vs mean filter
- Morphology & connected components
- Aliasing & Moiré
- Fourier series
- 2D Fourier transform
- Magnitude vs phase
- Deconvolution
- JPEG & the DCT
- Homogeneous coordinates
- Pinhole camera: intrinsics & extrinsics
- Thin lens & depth of field
- Vanishing points & horizon
- Focal length, FOV & orthographic projection
The algorithms behind the demos are written out by hand instead of calling an image-processing library, so the code is meant to be read alongside the demos. This is a deliberate choice for learning: the implementations favor clarity over speed, while staying fast enough for the image sizes in the demos.
- Each demo keeps its math in a small, pure TypeScript module next to its page, e.g.
demos/template-matching/matching.tsordemos/fourier-transform/spectrum.ts. The conventions are documented at the top of each file. - Building blocks shared by several demos are in
src/shared/, e.g. linear filtering infilter.ts, the fast Fourier transform infft.tsand color conversions incolor.ts. - The
*.test.tsfile next to each module checks the math against definitions and known results. They are a good place to see what each function is expected to do.