Я написал внешнюю C # dll, которая принимает изображение и выполняет обработку изображения для определения позы руки.В настоящее время я использую связывание ZigFu для получения данных Kinect.Теперь я хочу передать данные изображения / глубины из Kinect в мою C # dll.
Ниже приведены выдержки из кода:
C # в Unity
h1.detectHandPose(OpenNIContext.Instance.Depth.GetDepthMap().XRes,OpenNIContext.Instance.Depth.GetDepthMap().YRes);
где h1 является установкой моего класса C # dll
и кода на C # dll
public int detectHandPose(IntPtr srcptr,Int32 w,Int32 h)
{
int fingerNum = 0;
Bitmap srcbmp = new Bitmap(w, h, 2,System.Drawing.Imaging.PixelFormat.Format16bppGrayScale, srcptr);
ccDefects(srcbmp);
return fingerNum;
}
public Image<Bgr, Byte> ccDefects(Bitmap b)
{
//all image processing code for convexity defects
}
Однако я не могу запустить его и получить следующую ошибку:
ArgumentException: была найдена нулевая ссылка или недопустимое значение [GDI + status: InvalidParameter] System.Drawing.GDIPlus.CheckStatus (статус Status) System.Drawing.Bitmap..ctor (ширина Int32, высота Int32, шаг Int32, PixelFormatформат, IntPtr scan0) (обертка remoting-invoke-with-check)w, Int32 h) OpenNIDepthmapViewer.FixedUpdate () (в разделе Активы / OpenNI / Сценарии / OpenNIDepthmapViewer.cs: 152)
Любая помощь приветствуется.
Спасибо, Кумар