用Java在磁盘上存储Mat的有效方法? (比模仿更好)

时间:2018-08-02 11:09:07

标签: java opencv javacpp

Mat临时存储在磁盘上(然后重新加载)的最有效方法是什么? (在Java中,使用javacpp)

目前,我正在这样做(假设我的Mat是单个频道,即“灰色”):

Mat mat=new Mat( 1000, 1000, opencv_core.CV_8UC1 );
opencv_imgcodecs.imwrite( "/tmp/tmpfile.pgm", mat );
mat.release();
mat = null;
// [...do something else that maybe needs the memory...]
mat = opencv_imgcodecs.imread( "/tmp/tmpfile.pgm", opencv_imgcodecs.CV_LOAD_IMAGE_GRAYSCALE );

[注意:尽管文档说了什么,但重新加载的Mat与保存的imread不匹配,而没有Mat的附加标志。]

尽管这种方式有效,但我认为必须有比将其编码为图像格式更有效的方法来临时存储bundle:refresh。我只是找不到可能做到的OpenCV函数。

关于如何更有效地执行操作,您有很好的建议吗?

0 个答案:

没有答案