c++ - OpenCV 垫 -> Matlab 垫文件

标签 c++ matlab opencv data-conversion mat

我想将我的 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();
}

Source for write CSV

在 Matlab 中使用以下函数读取 csv 文件:

x1 = csvread('yourFile.csv',0,0);

关于c++ - OpenCV 垫 -> Matlab 垫文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30155587/

相关文章:

c++ - 具有模板化参数的 typedef 函数指针

c++ - 哪些方法应该是 const?

c++ - 使用 map 统计大数据

matlab - PCA降维分类

matlab - 循环遍历重复向量而不显式写出重复出现的位置

python - OpenCV/Python - 从灰度图像中查找灰度图案矩形的角坐标?

c++ - MSVC 提示函数指针不是编译时常量

c++ - 如何使用opencv Mat reserve?与推回

opencv - OCR 的最小字符大小

c++ - 来自 matlab 的代码优化直方图 c++