=======================================================================
PyOpenCV - A Python wrapper for OpenCV 2.0 using Boost.Python and NumPy
=======================================================================

PyOpenCV brings Willow Garage's Open Source Computer Vision Library (OpenCV) verion 2.0 to Python. The package takes a completely new and different approach in wrapping OpenCV than traditional swig-based and ctypes-based approaches. It is intended to be a successor of ctypes-opencv and to provide Python bindings for OpenCV 2.0. ctypes-based approaches like ctypes-opencv, while being very flexible at wrapping functions and structures, are weak at wrapping OpenCV's C++ interface. On the other hand, swig-based approaches flatten C++ classes and create countless memory management issues. In PyOpenCV, we use Boost.Python, a C++ library which enables seamless interoperability between C++ and Python. PyOpenCV will offer a better solution than both ctypes-based and swig-based wrappers:

    * Provide bindings for both the new C++ interface and the existing C interface of OpenCV 2.0,
    * Preserve C++ data structures and avoid memory management issues,
    * Run at a speed nearer to OpenCV's native speed than existing wrappers. 

In addition, we use NumPy to provide fast indexing and slicing functionality to OpenCV's arrays like Scalar, Mat, and MatND, and to offer the user an option to work with their multi-dimensional arrays in NumPy. It is well-known that NumPy is one of the best packages (if not the best) for dealing with multi-dimensional arrays in Python. OpenCV 2.0 provides a new C++ generic programming approach for matrix manipulation (i.e. MatExpr). It is a good attempt in C++. However, in Python, a package like NumPy is without a doubt a better solution. By incorporating NumPy into PyOpenCV to replace OpenCV 2.0's MatExpr approach, we seek to bring OpenCV and NumPy closer together, and offer a package that inherits the best of both world: fast computer vision functionality (OpenCV) and fast multi-dimensional array computation (NumPy). """

:Author: Minh-Tri Pham <pmtri80@gmail.com>
:Version: 1.0.0 (beta)
:Released: (not yet)
:License: New BSD License

Availability
============

   To get the latest version, see:
   http://code.google.com/p/pyopencv/

Requirements
============

The following packages must be installed on your platforms:
 - OpenCV 2.0
 - Python 2.5 or above
 - NumPy 1.2.0 or above
 - Boost.Python from Boost 1.41.0 or above

Installation
============

Follow the instructions at the Wiki section of the project website at Google Code.

Support
-------

- Platforms: Win32, Linux, and Mac OS
- OpenCV version 2.0

How to use
==========

Download the demo package that is available from the project website. The package contains many Python demos slightly modified from the Python and C++ demos of OpenCV. Also, check out reference pages at the Wiki section.
