2016-03-16 2 views
1
<CM1 type_id="opencv-matrix"> 
    <rows>3</rows> 
    <cols>3</cols> 
    <dt>d</dt> 
    <data> 
    5.1385274254160595e+002 0. 3.2910027190134770e+002 0. 
    5.1238136591053387e+002 2.5289438862525913e+002 0. 0. 1.</data></CM1> 

У меня есть xml-файл, содержащий матрицу.Emgucv Как преобразовать FileNode в матрицу?

В C++, мы можем использовать это:

FileStorage fs("camera parameters.xml", FileStorage::READ); 
Mat CM1; 
fs["CM1"] >> CM1; 

получить объект матрицы.

Как это сделать на C#?

FileStorage fs = new FileStorage("camera parameters.xml", FileStorage.Mode.Read); 
Mat CM1; 
CM1 = new Mat(fs["CM1"]); //doesn't work, stuck here 

ответ

0

Чтобы прочитать Mat объект из файла XML с помощью FileStorage объекта, вы можете использовать метод FileNode.ReadMat().

Mat CM1 = new Mat();  
FileStorage fs = new FileStorage("camera parameters.xml", FileStorage.Mode.Read); 
if (fs.IsOpened) 
{ 
    fs.GetNode("CM1").ReadMat(CM1); 
} 

Убедитесь, что вы экземпляр объекта Mat, вызвав new Mat() первым, чтобы избежать исключения нарушения доступа к памяти.

Смежные вопросы