Mat存储 Mat和QString相互转换

Mat存储 Mat和QString相互转换

最近项目需要用到Mat网络存储的功能,网上找了很多大多都是通过生成文件的方式,最后自己实现了Mat和QSring相互转换来存储的方式,废话不说了 直接上代码:

QString AppManager::Mat2QString(const Mat& src )
{
    if(src.empty()) return QString();
    stringstream stream;
    stream<<src;
    return QString::fromStdString(stream.str());
}

Mat AppManager::QString2Mat(QString text)
{
    QStringList rowvalueList=text.split(";");
    int Matrow=rowvalueList.size();
    int Matcol=QString(rowvalueList[0]).split(",").size();
    float *matrix = new float[Matrow*Matcol];
    for(int row=0;row<Matrow;++row){
        QString rowvalues=rowvalueList[row];
        QStringList colvalues=  rowvalues.split(",");

        for(int col=0;col<Matcol;++col){
           float value=QString(colvalues[col]).replace("\n","").replace("[","").replace("]","").toFloat();
           matrix[row*Matcol+col]=value;
        }
    }
    Mat Matrix(Size(Matcol, Matrow), CV_32FC1, matrix);//注意:opencv里的行列顺序是和maltab相反的
    delete []matrix;
    return Matrix;
}
第一次写博客,有不足的地方希望大家指正
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值