Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Emgu中的Mat到XML_C#_Xml_Opencv_Mat - Fatal编程技术网

C#Emgu中的Mat到XML

C#Emgu中的Mat到XML,c#,xml,opencv,mat,C#,Xml,Opencv,Mat,我希望使用EMGU OpenCV将相机的校准参数保存在XML文件中。参数是Mat数据类型,所以我尝试将Mat转换为XML 我一直收到一个反射类型异常:“您必须在System.Array上实现一个默认访问器,因为它继承自ICollection”。有人知道如何解决这个问题吗 XmlSerializer serializer = new XmlSerializer(typeof(Mat)); Stream fs = new FileStream(path, FileMo

我希望使用EMGU OpenCV将相机的校准参数保存在XML文件中。参数是Mat数据类型,所以我尝试将Mat转换为XML

我一直收到一个反射类型异常:“您必须在System.Array上实现一个默认访问器,因为它继承自ICollection”。有人知道如何解决这个问题吗

        XmlSerializer serializer = new XmlSerializer(typeof(Mat));
        Stream fs = new FileStream(path, FileMode.Create);
        XmlWriter writer = new XmlTextWriter(fs, Encoding.Unicode);
        serializer.Serialize(writer, XMLData);
        writer.Flush();
我也试过了

 XMLData.Save(path+"calib.xml");
但它给出了一条错误消息,指出“不支持保存为XML”。改为使用Imwrite还会显示一条错误消息(“找不到特定扩展名的写入程序”)


EmguWiki说使用cvSave,但我找不到这样的方法。事实上,在文档中找不到cvSave()

对于发现自己有相同问题的人,我找到了一种不使用上述任何方法保存相机矩阵的方法

我只是从Emgu.CV()实例化FileStorage类的一个对象。“filePath”包含完整的目录地址和fileName.xml

fs = new FileStorage(filePath, FileStorage.Mode.Write);
fs.Write(matrixData);
我不确定这是否是最好的方法,但它确实创建了.xml文件并将mat matrixData写入了该文件