垫子和书面图像不一样

时间:2014-03-17 07:56:03

标签: c++ opencv image-processing

我在我的程序中创建了一个Mat变量,但是当我将它直接传递给一个函数时,它与我用imwrite编写它时的方式不同,并且在函数中再次读取它{ {1}}。

为什么会发生这种情况? 对我来说正确的形式是当我写和读取图像时,但是在这种情况下程序必须硬访问2次才能使程序变慢。
我如何能够阻止它并直接使用我的imread变量?

1 个答案:

答案 0 :(得分:0)

如果您不需要使用任何其他应用程序查看您的Image,您可以使用OpenCV内置的FileStorage实现将Mat对象编写到XML / YAML类中。以下是一个示例: -

//Writing
cv::FileStorage fs;
fs.open(filename, cv::FileStorage::WRITE);
fs<<"MyImage"<<Image1;

//Reading
fs.open(filename, cv::FileStorage::READ);
fs["MyImage"]>>Image1;

fs.release(); //Very Important