我想将我的 OpenCV Mat 转换为 Matlab .mat 文件,Matlab 可以轻松读取该文件。我不想使用Mex函数直接将数据提供给matlab,因为我想将数据保存在硬盘上。
有可用的 cvmatio cpp 函数:cvmatio ,但正如我所见,只有一个函数可以用 OpenCV 读取 matlab Mat,但没有从 openCV 创建 matlab Mat 的函数。
另一种可能性是将其存储为 csv 文件,然后通过 matlab 读取它,如下所述:OpenCV -> CSV
是否有任何其他可用的库或函数可以将数据直接转换为 Matlab mat?
最佳答案
我发现这是该问题的最佳答案,因为我还没有找到不使用临时文件的直接方法。
将 OpenCV Mat 写入 CSV 文件:
#include <fstream>
void MeasureTool::writeCSV(string filename, cv::Mat m)
{
cv::Formatter const * c_formatter(cv::Formatter::get("CSV"));
ofstream myfile;
myfile.open(filename.c_str());
c_formatter->write(myfile, m);
myfile.close();
}
在 Matlab 中使用以下函数读取 csv 文件:
x1 = csvread('yourFile.csv',0,0);
关于c++ - OpenCV 垫 -> Matlab 垫文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30155587/