c# - Emgucv 如何将 FileNode 转换为 Matrix?

标签 c# c++ emgucv

<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 文件。

在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

最佳答案

要使用 FileStorage 对象从 xml 文件中读取 Mat 对象,您可以使用 FileNode.ReadMat() 方法。

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

确保首先通过调用 new Mat() 来实例化 Mat 对象,以避免内存访问冲突异常。

关于c# - Emgucv 如何将 FileNode 转换为 Matrix?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36028941/

相关文章:

c# - emguCV-快速计算二进制图像中带孔的对象的面积

c# - 无法在代码隐藏中设置图像源

c# - 尝试初始化新图像 <> 时,EmguCV 343 缺少 dll "cvextern.dll"

c# - 如何在 azure 函数中禁用 XML 序列化

c++ - 模板参数困境

c++ - 如何打印数字列表,输出格式根据输入而不同?

c++ - 从中 move 数据的 vector 的容量

c# - 使用定时器实现双击事件

c# - 目录中最大的 10 个文件

c# - 是否可以在不创建对象实例的情况下获取对象属性名称字符串?