2016-05-16 7 views
1

EMGU OpenCVを使用して、自分のカメラの較正パラメータをXMLファイルに保存します。パラメータはMatデータ型になっているので、MatをXMLに変換しようとしています。C#EmguのMat to XML

「ICollectionから継承されるため、System.Arrayにデフォルトのアクセサを実装する必要があります」という反射型の例外が発生し続けます。誰もこの問題を解決する方法を知っていますか?

 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を使用すると、エラーメッセージが表示されます(「特定の拡張子のライターが見つかりませんでした」)。

EMGU wikiはcvSaveを使用すると言いますが、そのような方法は見つかりませんでした。実際には、cvSaveはどこにもありません(http://www.emgu.com/wiki/files/3.1.0

答えて

0

同じ問題を抱えている人にとって、私は上記の方法を使用しないカメラマトリックスを保存する方法を発見しました。

Emgu.CV(http://emgu.com/wiki/files/3.1.0/document/html/c0942d4b-fcd7-38b9-a1c8-1ac9413e53eb.htm)からFileStorageクラスのオブジェクトをインスタンス化するだけです。 「filePathには、」完全なディレクトリのアドレスが含まれており、ファイル名.xml

fs = new FileStorage(filePath, FileStorage.Mode.Write); 
fs.Write(matrixData); 

私はこれが最善の方法であるかどうかわからないのですが、それは.xmlファイルを作成していたし、ファイルにマットmatrixDataを書きました。