Files
scikit-image/scikits/image/opencv/_utilities.py
T
2010-05-25 10:29:13 -07:00

57 lines
1.7 KiB
Python

from textwrap import dedent
import numpy as np
# some utility functions for the opencv wrappers
# the doc decorator
class cvdoc(object):
'''A doc decorator which adds the docs for the opencv functions.
It primarily serves to append the appropriate opencv doc url to
each function.
'''
base_url = 'http://opencv.willowgarage.com/documentation/'
branch_urls = {'cv':
{'filter': 'image_filtering',
'feature': 'feature_detection',
'geometry': 'geometric_image_transformations',
'transforms': 'miscellaneous_image_transformations',
'structural': 'structural_analysis',
'calibration': 'camera_calibration_and_3d_reconstruction'
},
'cxcore': {},
'highgui': {}
}
def __init__(self, package='', group='', doc=''):
self.package = str(package)
self.group = str(group)
self.doc = str(doc)
def __call__(self, func):
# if key errors occur, fail silently
try:
self._add_url(func)
np.add_docstring(func, self.doc)
return func
except KeyError:
return func
def _add_url(self, func):
# Remove cv prefix from name
name = func.__name__.lower()[2:]
full_url = (self.base_url +
self.branch_urls[self.package][self.group] +
'.html' + '#' + name)
message = dedent('''
References
----------
.. [1] OpenCV documentation for `%(name)s`, %(url)s.
''' % {'name': name,
'url': full_url})
self.doc += '\n\n' + message