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

Learn the Kinect API – New Microsoft ‘Start Here!’ guide shows how – #bookreview

Learn the Kinect™ API
Rob Miles
(Microsoft Press, paperback, Kindle)

The Kinect sensor  is a popular peripheral for Microsoft’s XBox 360 video game systems and Windows PCs. The device contains a video camera, a directional microphone system, and a depth sensor.

Software developers are using the device “to advance the field of computer interaction in all kinds of exciting ways,” the author notes. “It is now possible to create programs that use the Kinect sensor to create a computer interface with the ability to recognize users and understand their intentions using a ‘natural’ user interface consisting of gestures and spoken commands. In addition, the device’s capabilities have a huge range of possible applications, from burglar alarms to robot controllers.”

If you want to learn how to program with the Kinect application programming interface (API), this new book in the popular Microsoft “Start Here!” series can get you moving along the right path toward becoming a developer.

But there are three key assumptions that may slow your start. You are expected to “have a reasonable understanding of .NET development using the C# programming language.” And: “You should be familiar with the Visual Studio 2010 development environment and object-oriented programming development.”

Also, “if you are a C++ developer who wishes to learn how to interact with the Kinect sensor from unmanaged C++ programs, you will find that the code samples supplied will not [emphasis added] provide this information.” All of the code samples are written in C#.

Rob Miles, a programming professor at the United Kingdom’s University of Hull, has organized his well-written, 250-page book into four parts:

  • Part I: Getting Started – Provides an overview of the Kinect and how to hook it up and get it working with your PC.
  • Part II: Using the Kinect Sensor – Covers sensor initialization and introduces each of Kinect’s data sources –video, depth, and sound – and how to use them in programs.
  • Part III: Creating Advanced User Interfaces – Illustrates how the Kinect SDK performs body tracking and how programs can use this information. Also shows how Kinect data can be combined to create augmented-reality applications.
  • Part IV: Kinect in the Real World – Focuses on how the Kinect can interact with external devices, such as MIDI devices and robots.

Learn the Kinect™ API offers several ideas for how you can use the Kinect’s video, sound, and depth-response capabilities in your own programs. One example is using the Kinect’s directional microphone feature so that a spoken password “only works when you say it in one part of [a] room, or you could have different [spoken] passwords for different parts of the room,” Miles points out.

It’s a bit of understatement to say that Rob Miles enjoys working with the Kinect device. “I’ve had,” he writes, “more wow moments with this little sensor bar than I’ve had with much more expensive toys that I’ve played with over time.”

Si Dunn