用C ++创建OpenCV向量并存储到文本文件

时间:2012-12-05 06:18:12

标签: c++ xcode opencv vector opticalflow

我有一个关于在OpenCV中存储向量的非常基本的查询,但由于我一直在MATLAB中工作,我发现在C ++中执行相同的向量操作真的很困难。

所以这是我的问题,我使用基本的cvGoodFeaturesToTrack()和cvCalcOpticalFlowPyrLK()函数计算光流,并找到流线的终点并在图像上将它们显示为光流线。

但是,我想将这些流线端点存储在矢量中,然后将其保存为文本文件,然后我可以将其发送到MATLAB进行读取。

我真的不知道如何创建存储这些点的这些向量并将它们保存在文本文件中。

有人可以帮忙吗?

谢谢,

佳日

1 个答案:

答案 0 :(得分:1)

根据OP对该问题的评论,我认为这是一个很好的方法:

std::ofstream matlabFile;
matlabFile.open("pointsOutput.m");
matlabFile << "Corners = [ ...\n";
for (int i = 0; i < MAX_CORNERS; ++i) {
    matlabFile << corners2[i].x << " " << corners2[i].y << "; ...\n";
}
matlabFile << "];";
matlabFile.close();

此代码应该在本地目录中提供以下文件:

pointsOutput.m:

Corners = [ ...
1 2; ...
3 4; ...
];

在matlab中会给你一个fiollowing矩阵:

Corners = 
    1 2
    3 4

假设你在该列表中有两个点,x和y = 1和2,3和4。

希望这有帮助。