Optimize YoloWrapper

protect internal methods, add exception if openCV support is not available
This commit is contained in:
Tino Hager
2018-07-03 22:29:10 +02:00
parent 6d2e31bf20
commit f4d4099104

View File

@ -9,16 +9,16 @@ namespace Darknet
private const int MaxObjects = 1000; private const int MaxObjects = 1000;
[DllImport(YoloLibraryName, EntryPoint = "init")] [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")] [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")] [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")] [DllImport(YoloLibraryName, EntryPoint = "dispose")]
public static extern int DisposeYolo(); private static extern int DisposeYolo();
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
public struct bbox_t public struct bbox_t
@ -66,7 +66,11 @@ namespace Darknet
{ {
// Copy the array to unmanaged memory. // Copy the array to unmanaged memory.
Marshal.Copy(imageData, 0, pnt, imageData.Length); 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) catch (Exception exception)
{ {