Programming Computer Vision with Python and over 2 million other books are available for Amazon Kindle . Learn more

Sign in to turn on 1-Click ordering.
Trade in Yours
For a 2.40 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Start reading Programming Computer Vision with Python on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Programming Computer Vision with Python: Tools and algorithms for analyzing images [Paperback]

Jan Erik Solem
5.0 out of 5 stars  See all reviews (1 customer review)
RRP: 30.99
Price: 20.14 & FREE Delivery in the UK. Details
You Save: 10.85 (35%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 5 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want it Saturday, 19 April? Choose Express delivery at checkout. Details


Amazon Price New from Used from
Kindle Edition 17.12  
Paperback 20.14  
Trade In this Item for up to 2.40
Trade in Programming Computer Vision with Python: Tools and algorithms for analyzing images for an gift card of up to 2.40, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Book Description

29 Jun 2012 1449316549 978-1449316549 1

If you want a basic understanding of computer vision’s underlying theory and algorithms, this hands-on introduction is the ideal place to start. You’ll learn techniques for object recognition, 3D reconstruction, stereo imaging, augmented reality, and other computer vision applications as you follow clear examples written in Python.

Programming Computer Vision with Python explains computer vision in broad terms that won’t bog you down in theory. You get complete code samples with explanations on how to reproduce and build upon each example, along with exercises to help you apply what you’ve learned. This book is ideal for students, researchers, and enthusiasts with basic programming and standard mathematical skills.

  • Learn techniques used in robot navigation, medical image analysis, and other computer vision applications
  • Work with image mappings and transforms, such as texture warping and panorama creation
  • Compute 3D reconstructions from several images of the same scene
  • Organize images based on similarity or content, using clustering methods
  • Build efficient image retrieval techniques to search for images based on visual content
  • Use algorithms to classify image content and recognize objects
  • Access the popular OpenCV library through a Python interface

Frequently Bought Together

Programming Computer Vision with Python: Tools and algorithms for analyzing images + Practical Computer Vision with SimpleCV: The Simple Way to Make Technology See
Buy the selected items together

Product details

  • Paperback: 264 pages
  • Publisher: O'Reilly Media; 1 edition (29 Jun 2012)
  • Language: English
  • ISBN-10: 1449316549
  • ISBN-13: 978-1449316549
  • Product Dimensions: 23.3 x 17.9 x 1.7 cm
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (1 customer review)
  • Amazon Bestsellers Rank: 196,258 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Product Description

Book Description

Tools and algorithms for analyzing images

About the Author

Jan Erik Solem is a Python enthusiast and a computer vision researcher and entrepreneur. He is an applied mathematician and has worked as associate professor, startup CTO, and now also book author. He sometimes writes about computer vision and Python on his blog He has used Python for computer vision in teaching, research and industrial applications for many years. He currently lives in San Francisco.

Customer Reviews

4 star
3 star
2 star
1 star
5.0 out of 5 stars
5.0 out of 5 stars
Most Helpful Customer Reviews
6 of 7 people found the following review helpful
5.0 out of 5 stars Great Book for Computer Vision enthusiasts 24 Aug 2012
What a great book!!!!!

I know I'm not impartial because I like computer vision, but this book really is a big supplement to computer vision classes you can have in college. The choice of the language used is also great for both the amount of programmers that use it, that also for the fluency of the programs created. Has to be mentioned that this book is for intermediate students how wants to do some other advanced stuff of computer vision usually not covered by specific classes. If you are kind of a mathematical person who like formulas and demostrations and wants to know more about the theory behind some example, it would be preferable complement this book with others (I remember Multiple View Geometry for example) that explains much better details the theory used.

Below you can find a brief explaination of each chapter in the book:

Chapter 1 - Basic Image Handling and Processing
This chapter simply explains what functionality are available for handle images using python and the PIL library provided. It also explains the other libraries used as Numpy, Scipy, Matplotlib

Chapter 2 - Local Image Descriptors
After a brief explanation of what are local image descriptor, the chapter explains the Harris and the Sift descriptors. The example of this chapter is to create a graph of relation between geotagged information retrived on panoramio.

Chapter 3 - Image to Image Mappings
In this chapter, homographies and affine transformation are explained. The method of Direct Linear Transformation Algorithm to find the homography based on correspondent points is explained. In case of affine transformation, fasted way to find the matrix with less correspondencies are described.
Read more ›
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on (beta) 4.4 out of 5 stars  10 reviews
31 of 32 people found the following review helpful
5.0 out of 5 stars Great Hands-on Introduction 16 Aug 2012
By Patrick Mihelich - Published on
*** The Good ***

Opening the table of contents, I was immediately impressed by the
selection of topics. Computer vision is a broad field, and PCVwP manages
to cover plenty of ground. Over the course of few chapters you
automatically create panoramas, build an image search engine, implement
an optical sudoku solver, and more. The underlying theory is developed
and built upon as you go, so you never have too long of a slog before a
fun demo. I especially enjoyed how the author capped Chapter 4 on camera
models - pretty dry stuff, to be honest - with a demonstration of
augmented reality (placing 3D objects into images) using PyGame and OpenGL.

I paid special attention to Chapters 2, "Local Image Descriptors", and
7, "Searching Images"; I've implemented these algorithms myself. Both
are presented well. The author covers the theory accurately but
succinctly, without getting bogged down in detail. The image search
algorithm presented in the text is simplified but not dumbed down. In
fact, the ambitious reader who completes the end-of-chapter exercises
will have a pretty state of the art image retrieval system.

One of the book's strengths is the elegantly written code samples. They
are a great advertisement for Python as a scientific computing tool. I'm
personally most at home bit-banging in C++, but even with powerful
libraries (Boost, Eigen, OpenCV) it's hard to match the terseness of
Python. I appreciate the focus on free, open-source software, and the
star libraries in this book - Numpy, SciPy, Matplotlib - are
high-quality and well documented. MATLAB users, take notice.

As a developer of OpenCV (the Open Source Computer Vision Library), I
was happy to see it featured in the final chapter. OpenCV's Python
bindings were totally redone in the last couple years, but the book's
treatment is up-to-date. If the book inspires you, playing with OpenCV
is a logical next step.

*** The Bad ***

The omission of the Kinect disappointed me. Cheap, ubiquitous 3D sensing
(exemplified by the Kinect) has changed the game for the hobbyist
computer vision enthusiast. When it hit stores, it took only a month for
open-source hackers to gain access to the device. Ever since then we've
seen a steady stream of "Kinect Hacks" repurposing the sensor for
robotics, mapping, security, interactive displays - whatever you can
imagine. The author missed an opportunity here; a Chapter 11 introducing
libfreenect (or even OpenNI, its industrial counterpart) would have been
a great addition.

*** The Ugly ***

Computer vision is a math-heavy field, and the author isn't going to
hold your hand through the tough spots. Some basic linear algebra
knowledge (working with matrices and vectors) is necessary to get much
out of the book. Depending on the example, you'll get concepts from
statistics, signal processing and optimization theory thrown at you. To
be fair, you don't need to understand everything to get the gist and
appreciate the examples, and Wikipedia is your friend.

If computer vision intrigues you - and it should! - I recommend PCVwP
highly. It's fun, hands-on, and covers a remarkable amount of ground in
its brisk 10 chapters.
4 of 4 people found the following review helpful
4.0 out of 5 stars An excellent hands-on introduction to topics in computer vision 9 Sep 2012
By Christopher Lee-Messer - Published on
I have a background in computer vision and I wanted to learn more about topics like multi-view geometry methods, so, for my purposes, Solem's book was a dream come true. The first five chapters lead you through a series of important mathematical and software tools which make multi-view 3D reconstructions a natural and practical application. I was doing it myself by the end of chapter five. The example code is clear and from the author's website and via github.
I had a great time reading the book and going through the programming exercises. I can recommend the book strongly. I just wish I could figure out to whom to recommend it!

The practical step by step approach that Solem uses allowed me to dig into the math behind the algorithms while being able to play with working code. This is a great way to learn. So I can imagine that for a college or graduate student, in the right sort of course, the book would be invaluable. It requires a little linear algebra, geometry and familiarity with vector spaces. I can imagine another audience for this book: the smart, ambitious programmer who wants to use computer vision as part of his or her cool-new-product. The book also covers classifying and searching images using various approaches, along with image segmentation techniques and an introduction to the OpenCV library for speed in a realtime object tracking application.. It even discusses building web applications which make use of these techniques.

The book is definitely not a stand-alone textbook; it leaves out a the sort of wider perspective that a course or textbook would provide. This isn't a criticism per se, but I think the book would have benefited from short asides of the sort used in some books which highlight the context and the motivations behind the algorithms.

For example, one of the fundamental problems in computer vision is the correspondence problem: how do you know if one point on a object in an image corresponds to the same point in another image taken from a different position in space or time. Years of work and hundreds or possibly thousands of doctoral theses have devoted themselves to different ways of attempting to solve this problem. It is one of the fundamental (so-called) ill-posed inverse problems of vision. (It's called "ill-posed" because there is not sufficient information in the images to generate a unique solution.) In chapter 2, Solem introduces a series of local feature detectors, culminating with the Scale-Invariant Feature Transform (SIFT). The presentation is so matter-of-fact that you wouldn't know that SIFT and similar algorithms are a major advance forward in solving this fundamental problem.

So far, I haven't mentioned the other strength of the book, which is Python itself and its surrounding scientific programming ecology. For years, Python been one of the clearest and most re-usable of interactive programming languages. With the evolution of tools and libraries such scipy, IPython, sage, and the scikits, we have entered a golden age for doing numerical work in Python.

It was a pleasure to be able to read through the book with an IPython notebook open, so that I could interact with the code as I read. The notebook format left me with beautiful, publication quality graphs and images and typeset mathematics based upon the book's examples, and recorded my work on exercises and my own experiments. I wouldn't be surprised if, in the future, similar books include IPython notebooks as part of their teaching materials.

What is left out of the Solem's discussion is some of the other major packages for computer vision and machine learning. There's scikit-learn, scikit-image, Luis Coelho's Mahotas, and the UC Davis Cell Profiler library as well as many other libraries from research groups which develop primarily in other languages but which have Python bindings. But computer vision is a big subject, and any finite sized book needs some focus. The bibliographic references are more than enough if one wants to learn more. Certainly, whether you are a student, an ambitious app developer, or a "recreational" computer scientist like myself, Solem's book will be a useful and fun addition to your bookshelf.

Technical information

The book is published by O'Reilly and has O'Reilly's distinctive look-and-feel with bullhead catfish as the animal on the front cover. I read the ebook version as a PDF without difficulty on computer screen. The style is easy to read, focused, but not overly formal. The quality of the editing was good and the code examples worked. Setup of the software and how to obtain the data sets used in the examples is covered in the appendices and is easy for an experienced Python user with an Internet connection. I'm not sure how easy it would be for someone completely new to Python, numpy, and scipy. Those with access to a well supported Linux distribution have it easy as all the packages are installed with a single click. Packaged distributions like Enthought Python (Windows, Mac, and Linux) and Pythonxy (Windows) get you most of the way.
6 of 7 people found the following review helpful
4.0 out of 5 stars In depth book on a deep subject 6 Aug 2012
By Hernan Garcia - Published on
If you ever wondered how to analyze and image to recognize shapes and objects, how to search on them or how to build a panoramic view from a series of pictures (among other things) this is the book for you.
Jan Erik Solem takes the challenge and with the help of a bunch of Python modules show you how to solve those and other problems.

There is a lot of math in the book and you should be comfortable reading it or at least understanding it at a high level.
I found myself skipping some paragraphs and sometime whole pages here and there when the author went a bit to deep for me to follow along.

The problem on doing so is that the math will help you to understand what the code is doing, so you will have to go back and read the parts you skipped if you really want to understand what's going on.
2 of 2 people found the following review helpful
5.0 out of 5 stars A great addition to your Python library 15 Aug 2012
By jwegis - Published on
Format:Kindle Edition
I reviewed the electronic (PDF) version of "Programming Computer Vision with Python" by Jan Erik Solem. The PDF version is 247 pages (not counting the Table of Contents and Preface). The first 226 pages of content are split across ten chapters with the remaining 21 pages making up the Appendix, References, and Index. I found the PDF version very readable on a 15" laptop in two-page mode. The book is an appropriate level for beginning to intermediate software developers. While experience with Python would be helpful, the examples included are very readable and can be comprehended without much difficulty. A background in math or computer graphics/vision would also be helpful, but not essential. Be prepared to refresh your trigonometry, calculus and linear algebra skills.

I was initially drawn to chapter seven on searching images, but was quickly sucked into the other chapters on image processing, point and image transformation, OCR, working with camera models and viewpoints, clustering and classifying of images and camera and video input using OpenCV. Each chapter has a nice balance between problem description and analysis, mathematical theory and explanation as well as succinct, relevant, real-world coding examples. The book also includeds exercises and suggestions at end of each chapter for expanding upon techniques just learned. I found the artwork to be crisp and clean and really helpful for illustrating the concepts and techniques presented. The coding samples included in the book are downloadable from the O'Reilly website.

I enjoyed reading and reviewing this book and it is a great addition to my Python library.
4 of 6 people found the following review helpful
5.0 out of 5 stars Practical reference, diverse applications 20 Aug 2012
By Daniel H. - Published on
I did a CV project in university a number of years ago, and it was a painful experience. There were no code samples that we could find, and we were trying to develop simple object recognition on a tight deadline. We were successful after many sleepless nights, but I swore off CV forever.

Until this book came along.

I should note that I haven't even read it. However, I have leafed through it, and hacked away at a few different projects I thought would be fun. This book is perfect for my style of learning and development. By pulling together a few different Python modules, and adapting Jan's examples, I was creating fun, useful, and practical projects in minutes.

I wish more books were like this.

After playing around with CV and seeing how fun it can be, I had an idea for a new project, but none of the examples in the book really meshed 100% with what I wanted to accomplish. I sent Jan an email and within hours I had a response detailing a method that I could use, including code examples!

If Jan writes another book, I'll buy it. In the meantime Programming Computer Vision with Python will be an invaluable reference and source for new projects using CV.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category