ZeroCourse
Framed reading 35 minutes + canonical resource

Image Fundamentals and Classical Computer Vision

Hook #

Before deep learning taught machines to see, an entire field spent decades teaching them to see the hard way — by hand-crafting the algorithms. This lesson is that foundation, and it matters for two reasons: the fundamentals are still essential (every vision system, deep or not, rests on how images are represented and processed), and the history teaches the single most important lesson in computer vision — why deep learning won. First, the basics: an image is just a grid of numberspixels, each a brightness value (or three, for color) — and understanding that representation (color spaces, histograms) is the ground everything stands on. Then, classical image processing: filtering (sliding a small kernel over the image to blur, sharpen, or detect patterns — which is convolution, the exact operation from the CNN lesson, here applied by hand-designed filters), edge detection (Sobel, Canny — finding boundaries, a foundational step), and feature detection (Harris corners, SIFT, ORB — finding distinctive, matchable points). For thirty years, this was computer vision: engineers hand-designed the filters and features, painstakingly encoding what a "corner" or an "edge" or a "good keypoint" looks like. It worked, partially — and then, around 2012, deep learning learned all of it from data and crushed the hand-crafted approaches, which is the story of modern computer vision. This lesson gives you the fundamentals you'll always need and the "before" picture that makes the deep-learning "after" comprehensible — because the difference between hand-crafting features and learning them is the whole revolution.

What you'll be able to do by the end of this lesson #

  • Explain how an image is represented — a grid of pixels, each an intensity value (grayscale) or a vector of channel values (e.g. RGB color) — and what color spaces (RGB, grayscale, HSV) and histograms (the distribution of pixel intensities) are used for.
  • Explain image filtering as convolution with a kernel — sliding a small matrix over the image to produce an effect (Gaussian blur to smooth/denoise, sharpening, etc.) — and recognize it as the same convolution operation from the CNN lesson, but with hand-designed rather than learned filters.
  • Explain edge detection (Sobel — gradient-based; Canny — the classic multi-stage edge detector) as finding intensity boundaries, a foundational vision operation.
  • Explain classical feature detection (Harris corners; SIFT, SURF, ORB) as finding distinctive, matchable keypoints — and articulate the pivotal historical shift: for decades these features were hand-crafted by engineers, until deep learning learned them from data and superseded them — the central "why deep learning won" lesson of computer vision.

A quick try before we start #

Open any photo on your screen and zoom way in — past the point where you see the picture, until you see a grid of tiny colored squares. Those are pixels, and each one is just numbers: for a grayscale image, one number per pixel (0 = black, 255 = white); for color, three (red, green, blue intensities). That's all an image is to a computer — a grid of numbers. Everything in computer vision is math on this grid. Now a classic operation: suppose you want to blur the photo (to reduce noise). You slide a small window across the image and, at each position, replace the center pixel with a weighted average of its neighbors — nearby pixels count more, distant ones less (a "Gaussian" weighting). That sliding-weighted-average is convolution — the exact operation from the CNN lesson — but here the weights (the "kernel") are hand-designed by you to produce a blur. Change the kernel and you get different effects: a kernel that responds to dark-to-light transitions becomes an edge detector (it lights up at boundaries — this is Sobel, and Canny refines it). And here's the pivotal historical point hiding in this: for thirty years, computer vision meant humans hand-designing these kernels and features — an engineer would sit and figure out "what kernel detects a corner?", "what mathematical description makes a keypoint matchable across photos?" (that's SIFT — a brilliant, complex, hand-crafted feature). It was painstaking, and it worked partially. Then, around 2012, a CNN (from the last course) learned its own filters from data — and its learned features demolished the hand-crafted ones on every benchmark. The operation is the same (convolution); the difference is who designs the filters — a human, or gradient descent. Hold that: classical CV hand-crafts the filters; deep learning learns them — and that single difference is the whole revolution.

Why this matters here #

This lesson matters for two reasons that together frame the entire course. First, the fundamentals are permanent: no matter how deep your models get, computer vision always rests on understanding that an image is a grid of pixel values, that operations on images are math on that grid, and that filtering/convolution is the core operation — so this is the bedrock vocabulary every vision engineer needs. Even in a deep-learning-only pipeline, you're constantly working with pixel representations, color spaces, image preprocessing, and augmentation (all built on these fundamentals), and classical operations (edge detection, thresholding, morphological ops) remain genuinely useful for many practical tasks where a full neural network is overkill (a simple document scanner, a barcode reader, a quality-control check for a specific defect). An engineer who knows only "call a pre-trained model" but doesn't understand pixels, filtering, and edges is missing the ground the whole field stands on — and will be helpless when a task needs classical preprocessing or a lightweight non-deep solution.

Second — and this is the deeper payoff — the history teaches why deep learning won, which is the single most important conceptual lesson in computer vision and a direct, vivid confirmation of the "networks learn their own features" story from the last course. For roughly thirty years (1980s–2012), computer vision was the art of hand-crafting features: brilliant researchers spent careers designing algorithms like SIFT (Scale-Invariant Feature Transform — a genuinely ingenious, mathematically sophisticated way to find and describe keypoints that stay matchable across changes in scale, rotation, and lighting). These hand-crafted features worked, and powered real systems (panorama stitching, early object recognition, robot navigation) — but they hit a ceiling, because a human can only hand-design so much, and the hand-crafted features couldn't capture the full, messy complexity of real-world visual variation. Then, in 2012, AlexNet (a CNN, from the last course) learned its features directly from data via gradient descent — and its learned features shattered the hand-crafted state of the art on the ImageNet benchmark, by a margin so large that the entire field abandoned hand-crafting almost overnight. This is the pivotal moment of modern AI, and its lesson is precise and profound: the features a network learns from data are better than the features humans can design by hand — because the network can discover subtle, complex, hierarchical patterns (the edges → textures → parts → objects hierarchy from the CNN lesson) that no human would think to encode. For a working engineer, understanding this history is understanding why the rest of this course is about deep architectures (the classical hand-crafted approach was genuinely superseded), why the "learns its own features" property is so consequential (it's the difference between a ceiling and no ceiling), and when classical methods still make sense (simple, well-defined tasks where a hand-crafted operation is cheaper and sufficient). The classical foundations are the ground you stand on and the "before" that makes the deep-learning "after" comprehensible — and the SIFT-to-AlexNet transition is the clearest lesson in all of AI about why learning beats hand-engineering.

The engineer's lens #

The first lens is image representation and processing — the grid of numbers, and filtering as convolution — the permanent bedrock. At the lowest level, a computer sees an image as a grid of pixel values — a 2D array for grayscale (one intensity per pixel, typically 0–255), or a 3D array for color (a stack of channels, e.g. red/green/blue, so each pixel is a 3-number vector). This representation is worth holding firmly because everything in vision is operations on this grid — and details matter in practice: color spaces (RGB is the default, but grayscale discards color for simplicity/speed, and HSV — hue/saturation/value — separates color from brightness in ways useful for tasks like color-based segmentation), and histograms (the distribution of pixel intensities across the image — used for exposure analysis, contrast adjustment, and thresholding). Built on this, filtering is the core classical operation, and it's convolution — the exact operation from the CNN lesson: slide a small kernel (a little matrix of weights) across the image, computing a weighted sum of the pixels under it at each position, producing a transformed image. The critical connection to internalize is that classical filtering and CNNs use the same operation — convolution — the only difference is where the kernel comes from: in classical CV, the engineer hand-designs the kernel for a specific effect (a Gaussian kernel for blur/denoising; a difference kernel for sharpening or edge-detection); in a CNN, the kernel's weights are learned by gradient descent. This is the single most clarifying link between the two eras: a CNN is, in a sense, "classical filtering where the filters are learned instead of hand-designed." For the engineer, understanding image representation (pixels, channels, color spaces, histograms) and filtering-as-convolution is the permanent foundation — the vocabulary and mechanics that underlie every vision system, and the bridge that makes the CNN's "learned filters" click as a natural evolution of hand-designed ones.

The second lens is edge and feature detection — extracting structure from pixels, the building blocks of classical vision. Raw pixels are low-level; useful vision needs structure — edges, corners, distinctive points — and classical CV extracts these with specialized operations. Edge detection finds boundaries — places where intensity changes sharply (the outline of an object, the border between regions), which are foundational because edges carry most of an image's structural information (you can often recognize an object from its outline alone). The classical approach uses gradients (how fast intensity changes — the derivative from the calculus course, applied to the pixel grid): the Sobel operator computes intensity gradients to highlight edges, and the Canny edge detector is the classic multi-stage refinement (smooth, compute gradients, thin the edges, and link them with hysteresis thresholding) that produces clean, connected edge maps — still widely used. Feature detection goes further, finding distinctive, localizable, matchable points — keypoints — that can be recognized across different images of the same scene (essential for stitching panoramas, tracking objects across video frames, 3D reconstruction, and matching a query image to a database). Harris corner detection finds corners (points where intensity changes in multiple directions — more distinctive than edges). And SIFT (Scale-Invariant Feature Transform), with its relatives SURF and ORB, are the landmark hand-crafted feature descriptors: they find keypoints and compute a rich numerical description of each one's local neighborhood that is invariant to scale, rotation, and lighting changes — so the same physical corner produces the same descriptor whether the photo is near or far, tilted, or dim, which is what makes reliable matching possible. These are genuinely ingenious algorithms — SIFT in particular is a masterpiece of hand-engineering. For the engineer, edge and feature detection are the classical toolkit for extracting structure from pixels, still useful for many tasks (ORB, being fast and license-free, powers a lot of real-time matching and SLAM), and — critically — they're the hand-crafted features whose supersession by learned features is the course's central story.

The third lens is hand-crafted versus learned features — the pivotal shift that defines modern computer vision, and its lesson about learning versus engineering. This is the load-bearing insight of the lesson, and it reframes everything. For roughly thirty years, computer vision was fundamentally the enterprise of hand-crafting features: a researcher would design, by hand and by insight, an algorithm to extract useful features from images (SIFT, HOG, and dozens of others), then feed those hand-designed features to a classifier (often an SVM, from the classical-ML course) to do recognition. This worked and produced real, useful systems — but it had a fundamental ceiling: the features were only as good as human ingenuity could make them, and humans cannot hand-design features rich enough to capture the full complexity of real-world vision (the endless variation in lighting, pose, occlusion, background, and appearance that real images contain). The features were a bottleneck. Then came the pivotal moment — 2012, AlexNet, ImageNet — where a CNN learned its features directly from data (via gradient descent and backprop, from the last course) and demolished the hand-crafted approaches, cutting the ImageNet error rate so dramatically that the entire field pivoted to deep learning within a couple of years. The lesson is precise: learned features beat hand-crafted features — because the network, trained on millions of images, discovers a hierarchy of features (edges → textures → parts → objects, the CNN lesson's hierarchy) that is far richer and more subtle than anything a human would think to design, and it adapts those features to the exact task and data rather than being a fixed, general-purpose hand-design. This is not just a computer-vision fact; it's a general lesson about machine learning that recurs everywhere — when you have enough data and compute, learning representations from data beats engineering them by hand — and it's why deep learning transformed not just vision but speech, language, and beyond (in each field, learned features superseded decades of hand-engineering). For a working engineer, this history is essential context: it explains why the rest of this course teaches deep methods (the classical hand-crafted approaches were genuinely, decisively superseded for hard vision tasks), it makes the "learns its own features" property from the last course concrete and consequential (it's the difference between hitting a ceiling and not), and it teaches judgment about when each approach fits — classical operations (edges, thresholding, ORB) remain the right tool for simple, well-defined tasks (a barcode reader doesn't need a neural network), while learned deep features are essential for hard, open-ended recognition. The synthesis of the lesson: an image is a grid of pixel values, and classical computer vision processes it with hand-designed operations — filtering/convolution (blur, sharpen — the same operation CNNs learn), edge detection (Sobel, Canny — gradients on the pixel grid), and feature detection (Harris, SIFT, ORB — hand-crafted matchable keypoints); these are the permanent fundamentals and remain useful for simple tasks — but the pivotal lesson of modern vision is that around 2012, **learned* features (CNNs) superseded thirty years of hand-crafted ones, because learning representations from data beats engineering them by hand, which is the central "why deep learning won" story of computer vision and a general lesson of machine learning.* The classical foundations are the ground you stand on, and their supersession is the "before" that makes the deep "after" make sense.

What to focus on in the resources #

  • OpenCV tutorials (free) — primary. The fastest way to do the classical operations — load an image, Gaussian blur, Sobel/Canny edges, Harris/ORB features — in a few lines of Python. Work through 'Core Operations', 'Image Processing', and 'Feature Detection'. Seeing a Canny edge map from your own photo makes it concrete.
  • First Principles of Computer Vision (Nayar, Columbia) (free) — primary. A rigorous, beautifully-produced video series on the fundamentals (image formation, filtering, edges, features) — the classical foundation that CS231n (a deep-learning course) assumes. Watch the image-formation and filtering modules.
  • Szeliski, Computer Vision (free PDF), Ch 3–4. The canonical CV textbook — Ch 3 (image processing/filtering/edges), Ch 4 (feature detection). Use as the precise-math reference for a specific operation; read the relevant sections, not cover-to-cover.
  • Skip on first pass: the precise SIFT/SURF descriptor math, camera geometry and calibration, morphological operations in depth, and the classical-CV pipeline (feature matching → RANSAC → homography). Get: image = grid of pixels (channels, color spaces, histograms); filtering = convolution with a kernel (same op as CNNs, but hand-designed — blur/sharpen/edges); edge detection (Sobel/Canny = gradients on pixels); feature detection (Harris/SIFT/ORB = hand-crafted matchable keypoints); and the pivotal shift — learned features (2012, AlexNet) superseded hand-crafted ones, the "why deep learning won" story.

Explain it back #

Explain to a colleague what an image is to a computer, what image filtering has in common with a CNN, and the single most important historical lesson of computer vision. A strong answer: to a computer, an image is a grid of pixel values — one number per pixel for grayscale (0–255), or a vector of channel values for color (RGB) — so all of computer vision is math on this grid (with color spaces like HSV and histograms of intensity as basic tools). Image filtering slides a small kernel (matrix of weights) over the image, computing a weighted sum at each position — a Gaussian kernel blurs/denoises, a difference kernel detects edges — and this is convolution, the exact operation from the CNN lesson; the only difference is that in classical CV the kernel is hand-designed by an engineer, while in a CNN it's learned by gradient descent. Edge detection (Sobel, Canny) finds intensity boundaries using gradients (derivatives on the pixel grid); feature detection (Harris corners; SIFT, ORB) finds distinctive, matchable keypoints — SIFT being an ingenious hand-crafted descriptor invariant to scale/rotation/lighting. The pivotal lesson: for ~30 years, computer vision meant humans hand-crafting these features, which worked but hit a ceiling (humans can only design so much). Then in 2012, AlexNet (a CNN) learned its features from data and demolished the hand-crafted state of the art on ImageNet — so the whole field switched to deep learning almost overnight. The lesson, which generalizes across all of ML: learned features beat hand-crafted ones (given enough data and compute), because a network discovers richer, hierarchical, task-adapted representations no human would design — the concrete meaning of "networks learn their own features," and the reason deep learning transformed vision (and speech, and language). Classical operations still win for simple tasks (barcodes, a specific defect check); learned deep features are essential for hard recognition.

Where this connects #

Backward: This lesson grounds and historically frames the last course's deep learning. Filtering is convolution — the exact operation the CNN lesson taught, here hand-designed rather than learned, which makes the CNN's "learned filters" click as a natural evolution. Edge detection's gradients are the derivatives from the calculus course, applied to pixels. And the hand-crafted-vs-learned shift is the vivid, historical confirmation of the "networks learn their own features" claim from the neuron-to-network and CNN lessons — the ceiling that learning broke through.

Forward: These fundamentals underlie every vision task ahead — image classification (next lesson) is the task AlexNet won, and the deep architectures that follow learn the features this lesson's classical methods hand-crafted. Pixel representation, filtering, and preprocessing feed all of it. The classical operations (thresholding, edges) reappear in segmentation (a later lesson). And the "learned beats hand-crafted" lesson is the organizing theme of the whole deep-learning arc — it recurs in sequence models (learned vs. hand-crafted language features) and LLMs (learned embeddings vs. hand-crafted linguistic rules). This is the foundation and the "before" picture; the rest of the course is the deep-learning "after."

That's the free preview. Sign in to continue this course.

Sign in to continue

New here? Make a desk →