mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-30 12:55:46 +08:00
60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
#!/usr/bin/env python
|
|
# encoding: utf-8
|
|
|
|
"""
|
|
This file properly imports the open CV libraries and returns them
|
|
as an object. This function goes a longer way to try to find them
|
|
since especially on MacOS X Library Paths are not clearly defined.
|
|
|
|
This module also removes the code duplication in __init__ and
|
|
opencv_cv
|
|
"""
|
|
|
|
__all__ = ["cv", "cxcore"]
|
|
|
|
import ctypes
|
|
import sys
|
|
import os.path
|
|
import warnings
|
|
|
|
def _import_opencv_lib(which="cv"):
|
|
"""
|
|
Try to import a shared library of OpenCV.
|
|
|
|
which - Which library ["cv", "cxcore", "highgui"]
|
|
"""
|
|
library_paths = ['',
|
|
'/lib/',
|
|
'/usr/lib/',
|
|
'/usr/local/lib/',
|
|
'/opt/local/lib/', # MacPorts
|
|
'/sw/lib/', # Fink
|
|
]
|
|
|
|
if sys.platform.startswith('linux'):
|
|
extensions = ['.so', '.so.2.1', '.so.1']
|
|
elif sys.platform.startswith("darwin"):
|
|
extensions = ['.dylib']
|
|
else:
|
|
extensions = ['.dll']
|
|
library_paths = []
|
|
|
|
lib = 'lib' + which
|
|
shared_lib = None
|
|
|
|
for path in library_paths:
|
|
for ext in extensions:
|
|
try:
|
|
shared_lib = ctypes.CDLL(os.path.join(path, lib + ext))
|
|
except OSError:
|
|
pass
|
|
else:
|
|
return shared_lib
|
|
|
|
warnings.warn(RuntimeWarning(
|
|
'The opencv libraries were not found. Please ensure that they '
|
|
'are installed and available on the system path. '))
|
|
|
|
cv = _import_opencv_lib("cv")
|
|
cxcore = _import_opencv_lib("cxcore")
|