=======================================================================
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 [http://opencv.willowgarage.com OpenCV] from traditional 
swig-based and ctypes-based approaches. It is intended to be a successor of 
[http://code.google.com/p/ctypes-opencv/ 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 a Python interface similar to the new C++ interface of 
    OpenCV 2.0, including features that are available in the existing C 
    interface but not in the C++ interface,
  * 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 [http://numpy.scipy.org NumPy] to provide fast indexing 
and slicing functionality to OpenCV's dense data types like Vec-like, 
Point-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.1.0 (beta)
:Released: Feb 2010
: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.
