【发布时间】:2014-08-01 09:22:09
【问题描述】:
我正在以特殊的数据格式保存立体视觉的校准数据,而不是来自 opencv 的给定 YAML 数据结构,这让我更加灵活。
因为我正在使用一个小技巧将 cv::Mat 转换为 std::string:
cv::Mat mat;
// some code
std::stringstream sstrMat;
sstrMat << mat;
saveFoo(sstrMat.str()); // something like this to save the matrix
作为输出,我从sstrMat.str() 变成我需要的所有数据:
[2316.74172937253, 0, 418.0432610206069;
0, 2316.74172937253, 253.5597342849773;
0, 0, 1]
我的问题是相反的操作:将此 std::string 转换回 cv::Mat。
我试过这样的代码:
cv::Mat mat;
std::stringstream sstrStr;
sstrStr << getFoo() // something like this to get the saved matrix
sstrStr >> mat; // idea-1: generate compile error
mat << sstrStr; // idea-2: does also generate compile error
我的所有尝试都失败了,所以我想问你是否知道 opencv 的方法可以将字符串转换回来,或者我是否编写了自己的方法来做到这一点。
【问题讨论】:
-
我很确定旧的 C 接口为您提供了使用 CvMat 加载/保存或读/写所需的内容,尽管文档对此非常神秘
标签: c++ opencv stringstream mat