Two consecutive frames, one question at every pixel: which way did the brightness under me move? Lucas-Kanade answers that question for a handful of chosen points. The same equation, run on every pixel at once, paints the whole frame with motion.
Click the moving scene to drop a tracking point (up to 8). Watch its neon tail — a sudden colour flip to red means the point's velocity changed sharply between frames.
Ix·u + Iy·v = -It, solved over a small window using the same 2×2 structure tensor from Harris corners — which is exactly why flow only tracks reliably at corners, not on flat or edge-only patches.
The linear approximation only holds for small motions. A coarse, shrunken image turns a big real displacement into a small pixel displacement the equation can handle — solve there first, then refine at full resolution.
Sparse tracks a handful of well-chosen points cheaply and precisely. Dense answers "what is moving, everywhere" at once — far more information, far more computation, which is why real-time dense flow historically needed dedicated hardware.
You drop a Lucas-Kanade tracking point in the middle of a large, perfectly flat, textureless wall in the scene. What happens to its tracking?