The OpenCV Python wrapper is automatically generated using a tool called SWIG (www.swig.org) using filtered header files from OpenCV and the swig interface definition files (*.i). If you are interested in simply using the Python interface, SWIG is not required and the generated wrapper files can be used as is. If you want to modify the python wrapper, or write bindings for another language supported by SWIG (say Ruby or C#), you will need SWIG 1.2.24 or greater. The filtered headers are found in the 'filtered' subdirectory and are automatically regenerated at build-time if the originals have changed. The 'general' subdirectory contains SWIG interface definition files that are not specific to Python, and can hopefully utilized for other language wrappers. The files in the 'python' subdirectory are Python specific. When adding new functionality, please try to use the SWIG abstractions rather than the Python API whenever possible.