Computer vision has widespread and growing application including robotics, autonomous vehicles, medical imaging and diagnosis, surveillance, video analysis, and even tracking for sports analysis. This book equips the reader with crucial mathematical and algorithmic tools to develop a thorough understanding of the underlying components of any complete computer vision system and to design such systems. These components include identifying local features such as corners or edges in the presence of noise, edge preserving smoothing, connected component labeling, stereopsis, thresholding, clustering, segmentation, and describing and matching both shapes and scenes. The extensive examples include photographs of faces, cartoons, animal footprints, and angiograms, and each chapter concludes with homework exercises and suggested projects. Intended for advanced undergraduate and beginning graduate students, the text will also be of use to practitioners and researchers in a range of applications.