Switch to the store?

Mastering OpenCV with Practical Computer Vision Projects

More Information
  • Perform Face Analysis including simple Face & Eye & Skin Detection, Fisherfaces Face Recognition, 3D Head Orientation, complex Facial Feature Tracking.
  • Do Number Plate Detection and Optical Character Recognition (OCR) using Artificial Intelligence (AI) methods including SVMs and Neural Networks
  • Learn Augmented Reality for desktop and iPhone or iPad using simple artificial markers or complex markerless natural images
  • Generate a 3D object model by moving a plain 2D camera, using 3D Structure from Motion (SfM) camera reprojection methods
  • Redesign desktop real-time computer vision applications to more suitable Android & iOS mobile apps
  • Use simple image filter effects including cartoon, sketch, paint, and alien effects
  • Execute Human-Computer Interaction with an XBox Kinect sensor using the whole body as a dynamic input

Computer Vision is fast becoming an important technology and is used in Mars robots, national security systems, automated factories, driver-less cars, and medical image analysis to new forms of human-computer interaction. OpenCV is the most common library for computer vision, providing hundreds of complex and fast algorithms. But it has a steep learning curve and limited in-depth tutorials.

Mastering OpenCV with Practical Computer Vision Projects is the perfect book for developers with just basic OpenCV skills who want to try practical computer vision projects, as well as the seasoned OpenCV experts who want to add more Computer Vision topics to their skill set or gain more experience with OpenCV’s new C++ interface before migrating from the C API to the C++ API.

Each chapter is a separate project including the necessary background knowledge, so try them all one-by-one or jump straight to the projects you’re most interested in.

Create working prototypes from this book including real-time mobile apps, Augmented Reality, 3D shape from video, or track faces & eyes, fluid wall using Kinect, number plate recognition and so on.

Mastering OpenCV with Practical Computer Vision Projects gives you rapid training in nine computer vision areas with useful projects.

  • Allows anyone with basic OpenCV experience to rapidly obtain skills in many computer vision topics, for research or commercial use
  • Each chapter is a separate project covering a computer vision problem, written by a professional with proven experience on that topic
  • All projects include a step-by-step tutorial and full source-code, using the C++ interface of OpenCV
Page Count 340
Course Length 10 hours 12 minutes
Date Of Publication 3 Dec 2012
Active Appearance Models overview
Active Shape Models
Model Instantiation – playing with the Active Appearance Model
AAM search and fitting


Shervin Emami

Shervin Emami, born in Iran, taught himself electronics and hobby robotics during his early teens in Australia. While building his first robot at the age of 15, he learned how RAM and CPUs work. He was so amazed by the concept that he soon designed and built a whole Z80 motherboard to control his robot, and wrote all the software purely in binary machine code using two push buttons for 0s and 1s.

After learning that computers can be programmed in much easier ways such as assembly language and even high-level compilers, Shervin became hooked on computer programming and has been programming desktops, robots, and smartphones nearly every day since then. During his late teens, he created Draw3D ( http://draw3d.shervinemami.info/), a 3D modeler with 30,000 lines of optimized C and assembly code that rendered 3D graphics faster than all the commercial alternatives of the time, but he lost interest in graphics programming when 3D hardware acceleration became available.

In University, Shervin took a class on computer vision and became greatly interested in it, so for his first thesis in 2003, he created a real-time face detection program based on Eigenfaces, using OpenCV (beta 3) for the camera input. For his master's thesis in 2005, he created a visual navigation system for several mobile robots using OpenCV (v0.96).

From 2008, he worked as a freelance Computer Vision Developer in Abu Dhabi and Philippines, using OpenCV for a large number of short-term commercial projects that included:

  • Detecting faces using Haar or Eigenfaces
  • Recognizing faces using Neural Networks, EHMM, or Eigenfaces
  • Detecting the 3D position and orientation of a face from a single photo using AAM and POSIT
  • Rotating a face in 3D using only a single photo
  • Face preprocessing and artificial lighting using any 3D direction from a single photo
  • Gender recognition
  • Facial expression recognition
  • Skin detection
  • Iris detection
  • Pupil detection
  • Eye-gaze tracking
  • Visual-saliency tracking
  • Histogram matching
  • Body-size detection
  • Shirt and bikini detection
  • Money recognition
  • Video stabilization
  • Face recognition on iPhone
  • Food recognition on iPhone
  • Marker-based augmented reality on iPhone (the second-fastest iPhone augmented reality app at the time)

OpenCV was putting food on the table for Shervin's family, so he began giving back to OpenCV through regular advice on the forums and by posting free OpenCV tutorials on his website ( http://www.shervinemami.info/openCV.html). In 2011, he contacted the owners of other free OpenCV websites to write this book. He also began working on computer vision optimization for mobile devices at NVIDIA, working closely with the official OpenCV developers to produce an optimized version of OpenCV for Android. In 2012, he also joined the Khronos OpenVL committee for standardizing the hardware acceleration of computer vision for mobile devices, on which OpenCV will be based in the future.

Khvedchenia Ievgen

Khvedchenia Ievgen is a computer vision expert from Ukraine. He started his career with research and development of a camera-based driver assistance system for Harman International. He then began working as a Computer Vision Consultant for ESG. Nowadays, he is a self-employed developer focusing on the development of augmented reality applications. Ievgen is the author of the Computer Vision Talks blog (https://computer-vision-talks.com), where he publishes research articles and tutorials pertaining to computer vision and augmented reality.

Naureen Mahmood

Naureen Mahmood is a recent graduate from the Visualization department at Texas A&M University. She has experience working in various programming environments, animation software, and microcontroller electronics. Her work involves creating interactive applications using sensor-based electronics and software engineering. She has also worked on creating physics-based simulations and their use in special effects for animation. Her blog can be found at http://howdweknows.blogspot.com/.

Roy Shilkrot

Roy Shilkrot is an assistant professor of computer science at Stony Brook University, where he leads the Human Interaction group. Dr. Shilkrot's research is in computer vision, human-computer interfaces, and the cross-over between these two domains, funded by US federal, New York State, and industry grants. Dr. Shilkrot graduated from the Massachusetts Institute of Technology (MIT) with a PhD, and has authored more than 25 peer-reviewed papers published at premier computer science conferences, such as CHI and SIGGRAPH, as well as in leading academic journals such as ACM Transaction on Graphics (TOG) and ACM Transactions on Computer-Human Interaction (ToCHI).

David Millán Escrivá

David Millán Escrivá was eight years old when he wrote his first program on an 8086 PC using the BASIC language. He completed his studies in IT from the Universitat Politécnica de Valencia with honors in human-computer interaction supported by computer vision with OpenCV (v0.96). He has a master's degree in artificial intelligence, computer graphics, and pattern recognition, focusing on pattern recognition and computer vision. He also has more than nine years' experience in computer vision, computer graphics, and pattern recognition. He is the author of the Damiles Blog, where he publishes articles and tutorials on OpenCV, computer vision in general, and optical character recognition algorithms.

Daniel Lélis Baggio

Daniel Lélis Baggio started his work in computer vision through medical image processing at InCor (Instituto do Coração – Heart Institute) in São Paulo, where he worked with intravascular ultrasound image segmentation. Since then, he has focused on GPGPU and ported the segmentation algorithm to work with NVIDIA's CUDA. He has also dived into 6degrees of freedom head tracking with a natural user interface group through a project called ehci.He now works for the Brazilian Air Force.

Jason Saragih

Jason Saragih received his BEng degree in mechatronics (with honors) and PhD in computer science from the Australian National University, Canberra, Australia, in 2004 and 2008, respectively. From 2008 to 2010, he was a Postdoctoral fellow at the Robotics Institute of Carnegie Mellon University, Pittsburgh, PA. From 2010 to 2012 he worked at the Commonwealth Scientific and Industrial Research Organization (CSIRO) as a Research Scientist. He is currently a Senior Research Scientist at Visual Features, an Australian tech start-up company.

Dr. Saragih has made a number of contributions to the field of computer vision, specifically on the topic of deformable model registration and modeling. He is the author of two non-profit open source libraries that are widely used in the scientific community; DeMoLib and FaceTracker, both of which make use of generic computer vision libraries including OpenCV.