c# emgu.cv пытается скопировать mat.Data returnl null - PullRequest
1 голос
/ 12 февраля 2020

Я написал такой код для обнаружения объектов в 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 [,,,], но когда я присваиваю это значение переменной, оно всегда равно нулю. Итак, в этом коде я вижу огромный массив float [,,,] в mat.Data в режиме отладки, но после этого переменная arr всегда равна нулю .... Пожалуйста, помогите мне с этим, как я могу скопировать это массив из mat.Data в другую переменную?

1 Ответ

0 голосов
/ 12 февраля 2020

Извините, это был действительно глупый вопрос ... чтобы получить массив float [,,,] из mat.Data, я не должен использовать его следующим образом:

var arr = mat.Data;

правильный путь использовать:

var arr = mat.GetData();
...