Practical Computer Vision with SimpleCV – ‘Seeing’ with Python – #programming #bookreview

Practical Computer Vision with SimpleCV
Kurt Demaagd, Anthony Oliver, Nathan Oostendorp, and Katherine Scott
(O’Reilly, paperbackKindle)

SimpleCV, or Simple Computer Vision, is “an easy-to-use Python framework that bundles together open source computer vision libraries and algorithms for solving problems,” according to the authors of this useful and informative how-to book.

The subtitle is “Making Computers See in Python,” and the codes examples require Python 2.7.

Why learn computer vision? “As cameras are becoming standard PC hardware and a required feature of mobile devices, computer vision is moving from a niche tool to an increasingly common tool for a diverse range of applications,” the authors note.

Indeed, cameras and computer vision now are being used in everything from facial recognition systems and video games to automobile safety, industrial automation, medicine, planetary exploration, and even agriculture.

“The SimpleCV framework has compiled installers for Windows, Mac, and Ubuntu Linux, but it can be used on any system on which Python and OpenCV can be built,” the authors state.

Practical Computer Vision with SimpleCV shows how to use the framework and simple application examples to get started toward building your own computer vision applications. The 240-page book has 10 chapters:

  • Introduction
  • Getting to Know the SimpleCV Framework
  • Image Sources
  • Pixels and Images
  • The Impact of Light
  • Image Arithmetic
  • Drawing on Images
  • Basic Feature Detection
  • FeatureSet Manipulation
  • Advanced Features (focuses on optical flow)

The book also has three appendices: Advanced Shell Tips, Cameras and Lenses; and Advanced Features (deals with advanced segmentation and feature extraction tools).

Practical Computer Vision with SimpleCV provides a good overview of computer vision basics and shows, using simple but effective examples, how you can put them to work.

Si Dunn

Programming Computer Vision with Python – A good introduction to tools & algorithms for analyzing images – #bookreview

Programming Computer Vision with Python
Jan Erik Solem
(O’Reilly, paperbackKindle)

“Computer vision,” Jan Erik Solem states in his new book, “is the automated extraction of information from images.” That information, he adds, “can mean anything from 3D models, camera positions, object detection and recognition to grouping and searching image content.”

His text takes “a wide definition of computer vision and include[s] things like image warping, de-noising, and augmented reality.” But he concedes: “Practical computer vision contains a mix of programming, modeling, and mathematics and is sometimes difficult to grasp.”

Fortunately, Programming Computer Vision with Python stays deliberately light on theory and focuses on providing complete code examples, some fundamental algorithms, and numerous illustrations that help explain and demonstrate key concepts. The book is written well and nicely organized, and the code examples mostly are not very lengthy and can be downloaded from a link provided in the book.

A caution: The code examples are written in 2.x Python (you will need 2.6 or later) and are not compatible with 3.x Python. And a second caution: The author’s idea of “basic mathematics” includes knowing about “matrices, vectors, matrix multiplication, and standard mathematical functions and concepts like derivatives and gradients.” He emphasizes, however: “Readers can skip the math if they like and still use the example code.”

If you want to explore the basics of computer vision and improve your Python 2.x skills, this 247-page book likely can keep you busy and challenged for a good while. The code examples focus on “object recognition, content-based image retrieval, image search, optical character recognition, optical flow, tracking, 3D reconstruction, stereo imaging, augmented reality, pose estimation, panorama creation, image segmentation, de-noising, image grouping, and more.” Whew!

The chapters in Programming Computer Vision with Python are:

  • 1.      Basic Image Handling and Processing
  • 2.      Local Image Description
  • 3.      Image to Image Mapping
  • 4.      Camera Models and Augmented Reality
  • 5.      Multiple View Geometry
  • 6.      Clustering Images
  • 7.      Searching Images
  • 8.      Classifying Image Content
  • 9.      Image Segmentation
  • 10.  Open CV

If you are new to the Python programming language, Solem recommends both the online documentation at http://www.python.org and the Mark Lutz book, Learning Python.

Si Dunn