Learning path
Computer vision (CV)
Treat images as arrays, then filter, detect edges, threshold, label blobs, and match templates.
About this subject
Computer vision extracts information from images. Classical methods operate directly on arrays of pixels: they filter noise, find edges, separate objects from the background, and locate known patterns. Many of these ideas reappear inside the learned filters of convolutional neural networks.
This path covers images as arrays, convolution filters, Sobel edge detection, Otsu thresholding, connected-component labeling, and template matching, all on tiny images stored as lists. Each lesson uses a small, complete program that runs on its own. Python has the full sequence. The other languages listed below add lessons that use that language's own idioms and standard library, such as Java threads, C++ smart pointers, C# LINQ, or Node.js streams, and appear only for the topics the language supports. The programs are simplified models chosen to make an idea visible, so they are a foundation for further study rather than a replacement for a full course or for production-grade software.
Before you start: Nested lists and loops. The convolution lesson links to the deep-learning path.
- 1
Python
Readable code for automation, data, and first programs.
Images as arrays of pixels
Represent a grayscale image as rows of numbers, convert color to gray, and adjust brightness with clipping.
Filtering images with convolution
Slide a small kernel over an image to blur it, and compute the valid output size.
Edge detection with the Sobel operator
Estimate intensity gradients with two kernels and combine them into edge strength and direction.
Thresholding with Otsu's method
Pick a threshold automatically by maximizing the separation between dark and bright pixel groups.
Connected-component labeling
Find and number separate blobs in a binary image with a flood fill, and measure their sizes.
Template matching with sum of squared differences
Find where a small pattern occurs in an image by sliding it over every position and scoring the match.
- 2
C
Learn memory, pointers, and efficient systems programming.
- 3
C++
Build fast applications with modern types and classes.
- 4
- 5
- 6
JavaScript
Add behavior to the web and build applications.
- 7
TypeScript
JavaScript with static types for dependable code.