Book: Programming Computer Vision with Python

Book cover: Programming Computer Vision with Python

In case anyone missed it, you can download a very mature draft of “Programming Computer Vision with Python” at This book takes a fresh approach at introducing people to the computer vision field. It is aimed at beginners, who have some programming experience (not necessary Python) and basic understanding of linear algebra (matrices and vectors) and analysis.

The covered topics are (as taken from the TOC):

  • Basic Image Handling and Processing
  • Local Image Descriptors
  • Image to Image Mappings
  • Camera Models and Augmented Reality
  • Clustering Images
  • Searching Images
  • Classifying Image Content
  • Image Segmentation
  • OpenCV

What I like the most are the mini project like programming your own little augmented reality app or building a complete web app for content based image search. It is always great to have little working demos to show to your friends. I will definitely recommend it to anyone new and interested in the computer vision field.

The author, Jan Erik Solem, is Associate Professor at Lunds Universitet and co-founder of PolarRose, a facial recognition software company which was bought by Apple in September 2010.

You can buy the book from July on at or download, as said, the draft from the book’s website.

A list of lists of PhD resources

On your way to become a PhD, you not only have to learn how to do research, you also have to learn how to communicate your ideas comprehensible in text and speech, how to build the tools you need and how to survive in the microcosmos of supervisors, colleagues and under grad students of your research lab. But you are not the first to go through all this and people have written extensive advice for every problem you might encounter.  And as they are so popular right now, I present you here my: 

List of lists of PhD resources for computer scientists.

List of lists of lists

List of lists of lists!?

The most condensed summary I have found on the website of my work group IUPR. It is a good starter and gives one an overview of all the things one has to keep in mind and pay attention to.

From the most condensed to the most comprehensive. This collection links to nearly 100 articles on Ph.D. dissertation/research, presentations, writing,  reviewing/refereeing,  being a faculty member, job hunting, learning English and more. The list is overwhelming.

Links to documents on giving talks and writing papers and proposals.


If you did not actually study computer science (like me) or your courses mainly covered logic and reducing NP-complete problems, this site can probably help you a lot. Software carpentry is about learning the skills to write reliable software and using the existing tools efficiently. The website offers tutorials on basic programming, version control, testing, using the shell, relational databases,  matrix programming, program designing, spreadsheets, data management, and software life-cycles.

[UPDATE] How could I forget:

Like the well known Academia is “a collaboratively edited question and answer site for academics and those enrolled in higher education.” It is still in its beta phase, but growing everyday. I like the aspect, that it will be always more current and extensive than all the pages only maintained by individuals or single work groups. And if you can’t find the information you need, you can always ask for help.

So what do you think? Do you find these resources useful? Some of them are already quite old. Do you think they are obsolete? What are you tips? Which collections did I forget?

Who is collaborating?

Collaboration graph of master thesis created with collabgraph

In my scarce spare time, I have written Collabgraph to visualize connections between authors of scientific publications.

This python script reads a (your) bibtex file and draws a graph in which all the nodes are authors and the edges represent that the two authors have collaborated (or at least wrote a paper together).

On the right is the graph created by from the references used in my diploma thesis.  You can immediately see what central role Eakins, Meier and Flickner played.
Collabgraph requires only the pygraphviz library, which can installed with “easy_install pygraphviz”.

You can find the sourcode and the example at

I am looking forward to your feedback!!!

How to create good and fast Matlab code

As most of the readers of this blog land on one of the pages with the Matlab applications, I thought I collect some of my resources I use to write Matlab code.

First start with the official Mathworks help on how to write good code

than we have this 33-page tutorial “Writing Fast MATLAB Code” (PDF)

followed by the Recorded Webinar: Handling Large Data Sets Efficiently in MATLAB

For asking questions, I enjoy the Stackoverflow community. Here are two examples of answers you get for generall Matlab questions.

So, I hope you find these links more helpful than overwhelming.

Please leave a comment if you have anything to add!