我有一些MATLAB的代码,想要迁移到OpenCV上。MATLAB代码使用的数据存储在.mat文件中,然后在运行时加载。
我将这个.mat文件转换成了.csv文件,并使用ifstream将这个数据作为字符串读入OpenCV。但是我无法将此字符串转换成一个可以在OpenCV中使用的数据结构。
有没有办法将.mat文件/.csv文件转换为OpenCV中的Mat数据结构?
编辑:根据我收到的答案,我成功地使用YML文件将MATLAB数据读入OpenCV。我在MAC环境下完成了这项工作。但是,当我尝试在Windows环境下使用相同的代码读取文件时,文件没有被读取。只是想知道是否有人遇到过这样的问题。以下是我的代码片段:
我将这个.mat文件转换成了.csv文件,并使用ifstream将这个数据作为字符串读入OpenCV。但是我无法将此字符串转换成一个可以在OpenCV中使用的数据结构。
有没有办法将.mat文件/.csv文件转换为OpenCV中的Mat数据结构?
编辑:根据我收到的答案,我成功地使用YML文件将MATLAB数据读入OpenCV。我在MAC环境下完成了这项工作。但是,当我尝试在Windows环境下使用相同的代码读取文件时,文件没有被读取。只是想知道是否有人遇到过这样的问题。以下是我的代码片段:
// OpenCVDemo.cpp : Defines the entry point for the console application.
// Created for build/install tutorial, Microsoft Visual Studio and OpenCV 2.4.0
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>
using namespace cv;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Loading the basis." << endl;
FileStorage fs1("basis.yml", FileStorage::READ);
cv::FileNode B = fs1["B"];
if (B.EMPTY)
{
cout << "File is empty or does not exist" << endl;
return 1;
}
fs1["B"] >> basis;
cout << basis.cols << endl;
fs1.release();
return 0;
}