This book provides its readers the fundamental concepts in computer vision and how to design and implement vision algorithms for given problems. No prior knowledge of computer vision is required, but readers are expected to have experience in computer programming. Commented sample code in the C language and a variety of programming exercises in this book will assist the readers in developing an in-depth understanding of computer vision algorithms and their implementations. All major computer vision topics such as image preprocessing, edge detection, image segmentation, shape representation, texture, object recognition, image understanding, stereo vision, and motion are covered, together with their mathematical foundations and biological counterparts. By additionally providing hands-on experience on building computer vision systems from the ground up, this book will equip the readers with the skills necessary for developing professional vision solutions or conducting computer vision research in graduate schools.