static CvInvoke()
{
List<string> modules = new List<String>
{
CvInvoke.OPENCV_CORE_LIBRARY,
CvInvoke.OPENCV_IMGPROC_LIBRARY,
CvInvoke.OPENCV_VIDEO_LIBRARY,
CvInvoke.OPENCV_FLANN_LIBRARY,
CvInvoke.OPENCV_ML_LIBRARY,
CvInvoke.OPENCV_HIGHGUI_LIBRARY,
CvInvoke.OPENCV_OBJDETECT_LIBRARY,
CvInvoke.OPENCV_FEATURES2D_LIBRARY,
CvInvoke.OPENCV_CALIB3D_LIBRARY,
CvInvoke.OPENCV_LEGACY_LIBRARY,
CvInvoke.OPENCV_CONTRIB_LIBRARY,
CvInvoke.OPENCV_NONFREE_LIBRARY,
CvInvoke.OPENCV_PHOTO_LIBRARY,
CvInvoke.OPENCV_VIDEOSTAB_LIBRARY,
CvInvoke.OPENCV_FFMPEG_LIBRARY,
CvInvoke.OPENCV_GPU_LIBRARY,
CvInvoke.OPENCV_STITCHING_LIBRARY,
//CvInvoke.EXTERN_GPU_LIBRARY,
CvInvoke.EXTERN_LIBRARY
};
modules.RemoveAll(String.IsNullOrEmpty);
#if ANDROID
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
FileInfo file = new FileInfo(asm.Location);
DirectoryInfo directory = file.Directory;
foreach (String module in modules)
{
//IntPtr handle = Emgu.Util.Toolbox.LoadLibrary(module);
//Debug.WriteLine(string.Format(handle == IntPtr.Zero ? "Failed to load {0}." : "Loaded {0}.", module));
Java.Lang.JavaSystem.LoadLibrary(module);
Debug.WriteLine(string.Format("Loaded {0}.", module));
}
#elif IOS
#else
String formatString = GetModuleFormatString();
for (int i = 0; i < modules.Count; ++i)
modules[i] = String.Format(formatString, modules[i]);
LoadUnmanagedModules(null, modules.ToArray());
#endif
//Use the custom error handler
cvRedirectError(CvErrorHandlerThrowException, IntPtr.Zero, IntPtr.Zero);
}