From f4d4099104c0a746e2ea2349d724e6fbca0a8757 Mon Sep 17 00:00:00 2001 From: Tino Hager Date: Tue, 3 Jul 2018 22:29:10 +0200 Subject: [PATCH] Optimize YoloWrapper protect internal methods, add exception if openCV support is not available --- build/darknet/YoloWrapper.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/build/darknet/YoloWrapper.cs b/build/darknet/YoloWrapper.cs index 14bf56d4..f0c1b0c2 100644 --- a/build/darknet/YoloWrapper.cs +++ b/build/darknet/YoloWrapper.cs @@ -9,16 +9,16 @@ namespace Darknet private const int MaxObjects = 1000; [DllImport(YoloLibraryName, EntryPoint = "init")] - public static extern int InitializeYolo(string configurationFilename, string weightsFilename, int gpu); + private static extern int InitializeYolo(string configurationFilename, string weightsFilename, int gpu); [DllImport(YoloLibraryName, EntryPoint = "detect_image")] - public static extern int DetectImage(string filename, ref BboxContainer container); + private static extern int DetectImage(string filename, ref BboxContainer container); [DllImport(YoloLibraryName, EntryPoint = "detect_mat")] - public static extern int DetectImage(IntPtr pArray, int nSize, ref BboxContainer container); + private static extern int DetectImage(IntPtr pArray, int nSize, ref BboxContainer container); [DllImport(YoloLibraryName, EntryPoint = "dispose")] - public static extern int DisposeYolo(); + private static extern int DisposeYolo(); [StructLayout(LayoutKind.Sequential)] public struct bbox_t @@ -66,7 +66,11 @@ namespace Darknet { // Copy the array to unmanaged memory. Marshal.Copy(imageData, 0, pnt, imageData.Length); - DetectImage(pnt, imageData.Length, ref container); + var count = DetectImage(pnt, imageData.Length, ref container); + if (count == -1) + { + throw new NotSupportedException($"{YoloLibraryName} has no OpenCV support"); + } } catch (Exception exception) {