c# emgu.cv 试图复制 mat.Data returnl null
c# emgu.cv trying to copy mat.Data returnl null
我已经在 Emgu.cv C# 中编写了这样的对象检测代码:
Image<Bgr, byte> image1 = new Image<Bgr, byte>("testing.png");
int interception = 0;
Net netcfg = DnnInvoke.ReadNetFromTensorflow(Directory.GetCurrentDirectory() + @"pbs\t1.pb", Directory.GetCurrentDirectory() + @"pbs\graph.pbtxt");
netcfg.SetInput(DnnInvoke.BlobFromImage(image1.Mat, 1, new System.Drawing.Size(300, 300), default(MCvScalar), true, false));
Mat mat = netcfg.Forward();
var arr = mat.Data;
然而,当我在 Visual Studio 2019 调试我的代码时,我看到 mat.Data 是 System.Array float[],但是当我分配this 值赋给一个变量,它始终为 null。所以,在这段代码中,我可以在调试模式下看到 mat.Data 中的一个巨大的 float[] 数组,但在那之后,变量 arr 始终为 null ....请帮助我,我怎么能将该数组从 mat.Data 复制到另一个变量?
抱歉,这真是个愚蠢的问题...
从 mat.Data 得到一个 float[] 数组,我不应该这样使用它:
var arr = mat.Data;
正确的方法是使用:
var arr = mat.GetData();
我已经在 Emgu.cv C# 中编写了这样的对象检测代码:
Image<Bgr, byte> image1 = new Image<Bgr, byte>("testing.png");
int interception = 0;
Net netcfg = DnnInvoke.ReadNetFromTensorflow(Directory.GetCurrentDirectory() + @"pbs\t1.pb", Directory.GetCurrentDirectory() + @"pbs\graph.pbtxt");
netcfg.SetInput(DnnInvoke.BlobFromImage(image1.Mat, 1, new System.Drawing.Size(300, 300), default(MCvScalar), true, false));
Mat mat = netcfg.Forward();
var arr = mat.Data;
然而,当我在 Visual Studio 2019 调试我的代码时,我看到 mat.Data 是 System.Array float[],但是当我分配this 值赋给一个变量,它始终为 null。所以,在这段代码中,我可以在调试模式下看到 mat.Data 中的一个巨大的 float[] 数组,但在那之后,变量 arr 始终为 null ....请帮助我,我怎么能将该数组从 mat.Data 复制到另一个变量?
抱歉,这真是个愚蠢的问题... 从 mat.Data 得到一个 float[] 数组,我不应该这样使用它:
var arr = mat.Data;
正确的方法是使用:
var arr = mat.GetData();