Seeing has puzzled scientists and philosophers for centuries and it continues to do so. This new edition of a classic text offers an accessible but rigorous introduction to the computational approach to understanding biological visual systems. The authors of Seeing, taking as their premise David Marr's statement that "to understand vision by studying only neurons is like trying to understand bird flight by studying only feathers," make use of Marr's three different levels of analysis in the study of vision: the computational level, the algorithmic level, and the hardware implementation level. Each chapter applies this approach to a different topic in vision by examining the problems the visual system encounters in interpreting retinal images and the constraints available to solve these problems; the algorithms that can realize the solution; and the implementation of these algorithms in neurons. Seeing has been thoroughly updated for this edition and expanded to more than three times its original length. It is designed to lead the reader through the problems of vision, from the common (but mistaken) idea that seeing consists just of making pictures in the brain to the minutiae of how neurons collectively encode the visual features that underpin seeing. Although it assumes no prior knowledge of the field, some chapters present advanced material, This makes it the only textbook suitable for both undergraduate and graduate students that takes a consistently computational perspective, offering a firm conceptual basis for tackling the vast literature on vision. It covers a wide range of topics, including aftereffects, the retina, receptive fields, object recognition, brain maps, Bayesian perception, motion, color, and stereopsis. MatLab code is available on the book's Web site, which includes a simple demonstration of image convolution.