Transparent figures
Matplotlib (Pylab) has an interesting option in the savefig() command; the figure background can be set to be transparent. Very useful if you want to put your figures on any non-white background (e.g....
View ArticleOpenCV with Python on Mac OS X
Open source computer vision library OpenCV is gaining a lot of traction and now comes with what looks like a pretty good Python interface. There are installers for Windows and Linux but Mac OS X...
View ArticleConverting video to NumPy arrays
Using OpenCV it is possible to read video frames from a file and convert them to NumPy arrays. Frames returned by QueryFrame() are in OpenCV's IplImage format where the pixels are stored as arrays of...
View ArticleInstalling LibSVM
LibSVM is a good Support Vector Machine (SVM) implementation which works well with Python. The current release of LibSVM is version 3.0 (released September 2010). Download the zip file from the LibSVM...
View Article3D plotting with Matplotlib
Earlier, Matplotlib (and Python) lacked proper support for 3D plotting. This is no longer the case as the mplot3d toolkit provides 3D plotting of points, lines, contours, surfaces and all other basic...
View ArticleMultidimensional meshgrid with Python
Looking for an easy way to plot cubes in 3D I found NumPy's mgrid that can do meshgrid in any number of dimensions. The syntax is a bit confusing but once you understand the trick, it works.Here's a...
View ArticleRQ Factorization of Camera Matrices
A common operation on camera matrices is to use RQ factorization to obtain the camera calibration matrix given a 3*4 projection matrix. The simple example below shows how to do this using the...
View ArticleAdjacency matrix for image pixel graphs
One of my favorite NumPy functions is roll(). Here's an example of using this function to get neighborhood indices to create adjacency matrices for images.An adjacency matrix is a way of representing a...
View ArticleRead/Write World
Last week at ARE2011 Blaise Aguera y Arcas and Avi Bar-Zeev gave two talks that got my attention. The Read/Write World initiative from Bing. This is interesting from a number of angles:RML - Reality...
View ArticleAnother Python Interface for SIFT
I previously wrote about using David Lowe's SIFT code from Python here. There is a good open source alternative for those on Windows or Mac OS (Lowe's binaries are Linux only) called VLFeat. The...
View ArticleBook draft
The other night I put up the first early draft of my upcoming book "Programming Computer Vision with Python". The book is meant as an entry point to hands-on computer vision for students, researchers...
View ArticleInstalling the OpenCV Python Interface on Lion
On some machines I ran into "Segmentation fault 11" when I use the OpenCV Python interface on Mac OS X 10.7 Lion. These problem machines were all upgraded from Snow Leopard which had Python 2.6 (Lion...
View ArticlePolar panoramas with Python
Today I saw (again) Filipe Calegario's nice photos and instructions for making polar panoramas. To show how to warp images with Python I wrote a Python version of the polar warp. Here's a complete code...
View ArticleIsomap with scikit-learn
The scikit-learn project for Python contains many machine learning algorithms neatly packaged. There are several manifold learning algorithms in the manifold module. Here's a simple example of Isomap...
View ArticleSimple Panoramas with OpenCV
The latest 2.4 release of OpenCV contains some good stuff. The stitching module is really useful. In the OpenCV sample folder there is a great script called stitching_detailed.cpp. This does the whole...
View ArticleArnold's Cat Map
Arnold's cat map is a fun mapping to randomize images by shuffling the pixels around. It distorts the image by shearing and then moves the pieces outside the original image region back using the...
View ArticleBook: Programming Computer Vision with Python
Finally, after many nights and weekends, my O'Reilly book is out! You can buy it from O'Reilly here. Thanks to everyone who helped with feedback and comments on the draft versions I put online. The...
View ArticleReading Gauges - Detecting Lines and Circles
I received a question from a reader on how I would approach reading a simple gauge with one needle on a good frontal image of a circular gauge meter. This makes a good example to introduce Hough...
View ArticleInstalling PIL on OS X Mountain Lion
Installing PIL, the Python Imaging Library, on OS X sometimes gives problems with missing JPEG support. I have run into this problem before but could not find my solution so I'm adding it here as a...
View ArticleWatermarking images with OpenCV and NumPy
Here's a simple Python example of adding a watermark to an image using NumPy and OpenCV. I created a black/white version of the OpenCV logo for this example but feel free to use any image you like. In...
View ArticleAnaconda for Scientific Computing and Computer Vision
I recently came across the Anaconda Python distribution. It comes with Python, NumPy, SciPy, Pandas, Matplotlib, Numba and many other packages and you can set up virtual environments for any...
View ArticleSonja Kovalevsky Days 2013
I was invited to give a talk at the Sonja Kovalevsky Days to show some bright high school mathematics stars what working with mathematics can be like. The presentation titled "Image recognition and...
View ArticleEntrepreneurial Computer Vision Challenge
At the upcoming LDV Vision Summit this June 4th, I'll be coordinating an Entrepreneurial Computer Vision Challenge together with Serge Belongie.Teams can choose from three problem domains involving...
View ArticleHow to Calibrate a Camera with OpenCV and Python
Often you a faced with the problem of determining the intrinsic calibration of a camera. For example to straighten wide-angle photos, structure from motion and 3D reconstructions, augmented reality...
View ArticleLDV Vision Summit 2015
This year is the second year for the LDV Vision Summit, a great computer vision event with a different twist. The people attending last year were a mix of researchers, entrepreneurs, investors, and...
View Article