OpenCV 将矩阵写入Txt文件心得

本文探讨了在OpenCV中如何将处理过程中的矩阵数据保存到TXT文件,以方便MATLAB读取。作者指出,常规方法需要预先知道矩阵元素类型,存在不便。通过分析OpenCV源代码,提出了使用模板函数的方法,实现了不依赖具体数据类型的Mat和Vector<>()数据写入TXT文件的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天验证算法的时候,为了提高验证速度,减少调试时间,打算将OpenCV中处理过程中的数据保存至Txt里面,供MATLAB读取。

这是之前看到的一篇OpenCV下读写txt的文档(原帖地址:http://blog.youkuaiyun.com/chenyusiyuan/article/details/7974378),但是这种写法的前提是预先知道Mat或者Vector数据结构中的元素类型(比如int,float),因此实际使用起来很不方便。

如果无法显示地指出Mat里面的数据类型,如何为Mat写模板函数呢?显而易见的是,OpenCV中重载的"<<"能够自动按Mat中的数据类型调整输出样式。下面给出OpenCV源代码(V2.4.4,位于modules/core/out.cpp中)的写法,按照这种思路,可以写出任何基于模板的Mat操作函数。

template<typename _Tp> static void writeElems(std::ostream& out, const _Tp* data,
                                              int nelems, int cn, char obrace, char cbrace)
{
    typedef typename DataType<_Tp>::work_type _WTp;
    nelems *= cn;
    for(int i = 0; i < nelems; i += cn)
    {
        if(c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值