开头吐个槽。opencv读取xml的方法,在网上找过一篇,能力有限没调通,这不是重点,重点是竟然还设置了vip模式 呵呵
目的:opencv读取matlab处理的数据,存放在yml文件中。
简单粗暴来讲,就是想读取matlab存储的一个矩阵,将他放到opencv的Mat中去,就可以为所欲为啦...。
简书上找到的方法:
链接如下: https://www.jianshu.com/p/ad6a2f8a3fc8
大约步骤就是用matlab的 matlab2opencv这个函数来存储yml文件。例如下面这样,前面是矩阵a,后面是文件名
matlab2opencv( a, 'test.yml');
matlab见链接吧。
那么opencv读取代码如下
Mat var2;
string demoFile = "test.yml";
FileStorage fsDemo( demoFile, FileStorage::READ);
fsDemo["a"] >> var2;
记得这个fsDemo括号里的要对应yml文件中的!!opencv-matrix之前对应的那个字符。例如我的yml文件格式如下
%YAML:1.0
a: !!opencv-matrix
rows: 376
cols: 1241
dt: f
data: [ 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000, 。
end