BookNotesSlidesP-sets Syllabusdraft · v0.2.49.1
◀▲⌂▶
💬Comments welcome. To leave a note, select any text and click the note / highlight button that pops up — or open the panel with the tab at the top-right (‹). Notes are visible only inside our private review group.

1.2 How to read this book⧉

Start with a photographic problem, then learn enough of the method to implement it. The book alternates between tools, such as convolution and optimization, and applications, such as HDR and panoramas. Cross-references connect methods that appear in several applications.

The intended reader is a CS undergraduate who can program but is new to imaging. You should be comfortable with arrays, loops, functions, derivatives, integrals, vectors, and matrices. Basic probability helps with noise; the Part 45, Appendices cover the mathematical background when needed. You do not need prior experience with cameras, GPU programming, or imaging libraries.

For a first pass, read Part 2, Fundamentals, then Part 3, Visual perception and color and Part 4, Color spaces and color technology. The filtering and image-processing material supplies tools used throughout the later applications. For a particular project, use the dependency graph and the chapter's cross-references to find its prerequisites. Chapter 1.5, Problem sets maps the programming assignments to the methods they exercise.

fig-chapter-dependency-graph
Figure 1.2.1. The book's parts and their main prerequisite links, shown interactively. An arrow A→B means part B builds on part A; the columns run left to right by prerequisite depth, so the foundations (Intro, Fundamentals) sit on the left and the parts that depend on the most machinery (the multi-image, photo-collection, video, 3-D and forensics parts) sit on the right. Click any part to light up everything it builds on, its prerequisites. Tick what you want to learn, such as HDR and bursts, panoramas and collections, video, 3-D, single-image AI, or forensics, and the map lights up exactly the parts that goal requires (its transitive prerequisites) and dims the ones you can skip, with a count of how many of the book's parts your chosen path actually needs. Tick several goals to plan one route through all of them; untick everything to see the whole book. These are the headline dependencies, not every cross-reference; it is a map for planning a route.

The book grew out of Frédo's MIT computational photography course. Chapter 1.3, How this book was made describes its AI-assisted writing process and the human editorial work.

This mixture of tools and applications is deliberate. A panorama needs matching, warping, and blending; those same tools also appear in registration and compositing. Explaining them independently in every application would obscure what is shared. Presenting every tool before showing a photograph that needs it would make the motivation harder to follow. Read an application to understand the problem, use its links to study the required technique, then return to the application to see how the assumptions and failure cases fit together.

Computational photography can be organized along either axis: by tools, the ideas that recur, such as edge-aware filtering, optimization, multiresolution, Fourier analysis, learning, matching, and combining several images; or by tasks, the problems a photographer brings, such as denoising, deblurring, HDR, panoramas, and compositing. Figure 1.2.2 crosses the two. Most cells hold at least one method, and many methods occupy several cells because they combine tools or solve two tasks at once. A matrix this dense has no ordering that keeps every method next to all its relatives, so any table of contents, this one included, is a compromise, and the cross-references carry what the order cannot.

fig-tools-tasks-matrix
Figure 1.2.2. Tools against tasks. Each row is a tool, an idea that recurs across the book; each column is a task, a problem a photographer brings. A cell lists the methods that use that tool for that task. A method that combines several tools appears once per tool, and one that solves two tasks at once, such as joint demosaicking and denoising, appears once per task. Click a method to light up every cell it occupies, or search for one by name.

Some repetition is intentional. The same idea can be easier to understand through a second application: averaging first appears as a filter, then as a way to reduce noise across exposures. Each encounter adds assumptions or a failure case. Cross-references identify the shared method while leaving enough explanation in each application to make the connection useful.

1.2.1 Choosing how much to read⧉

Not every section is for every reader. Some are background you may already have, some are depth you would want on a second pass, and some are asides that exist because the topic is interesting. Sections carry labels indicating reading priority, and the web reader's reading controls let you act on those labels. Essentials shows only the most central material; + Useful adds the material most readers will want; Everything, the default, hides nothing.

A hidden section collapses to a line with its title, so you can see what was omitted and open it when needed. The setting follows you between chapters. These labels indicate reading priority; they do not replace the prerequisites for a method you want to implement.

Figure numbering stays fixed across reading settings. Gaps in the visible sequence indicate figures in hidden sections, so readers following different paths can still refer to the same figure.

1.2.2 Machine-readable by design⧉

We intend the book to be useful to people and to machines learning computational photography. Stable references, explicit notation, source citations, and worked examples help both.

AI-assisted writing makes human review especially important: fluent text can repeat an error convincingly. The editorial work is to check claims against sources and computations, choose explanations, and correct failures. Making that process explicit is more useful than treating generated prose as evidence of its own correctness. It also differs from preference training: a corrected textbook can serve as training material, but it is not itself a set of model preference comparisons.

There is a circularity in writing with a model and offering the result as material from which future models might learn. The contribution we intend to add is the author's curation: choosing a figure that actually demonstrates the claim, distinguishing a useful intuition from a plausible but wrong explanation, and correcting the text against evidence. Repeated model output alone supplies none of that assurance. The same corrections that help a student can make the material more useful to a future model, although neither use is guaranteed merely by publishing it.