Python samples for OpenCV: ASIFT (GSoC project)

I often use python for doing experiments in computer vision and other topics. It allows me to simply open a
text editor and type:
import numpy as np
import cv2
<...and some fancy CV code goes here>
No messing with projects and build systems. If I need some filter design or non-linear optimization - SciPy. For advanced plotting there is matplotlib. And most of the stuff that is needed apart from pure python is bundled into the EPD-free distribution.

I participated in Google Summer of Code program in years 2011 and 2012. My objective was making samples of using OpenCV Python API and improving the API itself. Besides making new code samples I:

  • made some previously unexposed parts of OpenCV (like Features2D framework) available from Python bindings,
  • made OpenCV functions release Python's GIL, alowing for multithreaded image processing in python scripts,
  • fixed some critical bugs and more...


ASIFT is a method of improving feature-based image matching by sampling various affine transformations of matched images. This strategy can be implemented on top of any scale and rotation invariant local image features. The authors of the method adopted SIFT for their reference implementation. Here is my ASIFT implementation, created as a part of GSoC. Image below shows the result of its application to a pair of images taken from an airplane. It manages to find 42 matches on an image pair I find hard to match even for humans!

Comments !