OpenCV4.1 FileStorage的参数:BASE64的变化以及使用时候的不同

问题描述:我在OpenCV3.2处理出来一堆xml的数据,在慢慢朝OpenCV4.1转,过程中发现需要往原来的xml里面添加几个Mat,顺便测试一下读写,结果发现BASE64变了。


在OpenCV 3.2里面,使用BASE64的方式如下:
cv::FileStorage fs1t(dirs[i] + “\prepare\matchMatLFixfill.xml”, FileStorage::WRITE | FileStorage::BASE64);
相比直接WRITE,用这种方式可以使用二进制存储,能够有效减少存储文件的磁盘压力,可以看到存储的结果是:
bin
在OpenCV4.1用同样的方式,写的文件变成了这样:
4inobin
没有binary了。存储空间占用从50M直接跳到100:
men占用
官方doc里的描述还是和以前一样,只是默认的编码方式不再是binary了,对比源码里的操作发现3.2的版本是这样的:
320版本
而现在(2019-7-13)最新的版本:
410版本
进来第一件事就是把BASE64的标志位给抹掉了????
但是其实本身还是兼容binary的编码,因为我测试直接读取之前的数据没有任何问题,可以识别binary的type_id。
所以最终,我选择用:FileStorage::APPEND

小尾巴:

应该还是有办法使用binary的编码存储xml的,因为这种编码方式依旧是支持的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值