Humans effortlessly perceive the three-dimensional structure of the world, yet achieving similar capabilities in computer vision remains a significant challenge. Despite advancements, a computer's ability to interpret images like a two-year-old is still out of reach. This text delves into various techniques used to analyze and interpret images, highlighting real-world applications in fields like medical imaging and consumer-level tasks such as image editing and stitching. It serves not only as a comprehensive textbook but also adopts a scientific approach to basic vision problems, developing physical models of the imaging process and employing statistical models for solutions. Structured to enhance active learning and project-oriented courses, the book includes tips for customization, exercises at the end of each chapter focused on algorithm testing, and suggestions for mid-term projects. Appendices provide additional material on linear algebra, numerical techniques, and Bayesian estimation theory. Each chapter recommends further reading, featuring the latest research in the field, alongside a full bibliography. With supplementary course material available online, this text is suitable for upper-level undergraduate or graduate courses in computer science or engineering, emphasizing practical techniques and encouraging creative exploration in computer vision.
Richard Szeliski Libri


Humans easily perceive the three-dimensional structure of the world, yet despite advances in computer vision, enabling a computer to interpret an image like a two-year-old remains a challenge. This text delves into various techniques for analyzing and interpreting images, highlighting real-world applications ranging from medical imaging to consumer-level tasks like image editing and stitching. It goes beyond mere "recipes," adopting a scientific approach to fundamental vision problems by formulating physical models of the imaging process and inverting them for scene descriptions. Statistical models and rigorous engineering techniques are employed to solve these challenges. The book is structured to support active curricula and project-oriented courses, with guidance in the Introduction for customization. Each chapter includes exercises emphasizing algorithm testing and suggestions for mid-term projects. Additional material on linear algebra, numerical techniques, and Bayesian estimation theory is provided in the Appendices. Each chapter also suggests further reading, including the latest research, and a comprehensive Bibliography is included. Supplementary course materials are available on the associated website. Aimed at upper-level undergraduates and graduate students in computer science or engineering, it focuses on practical techniques and encourages creative exploration, serving as a valuable reference for fundamental t