从坐标向量中提取坐标并保存到文件

时间:2012-10-04 09:34:31

标签: c++ opencv vector coordinates extract

我有一个包含列表坐标的向量... x1,y1; x2,y2 .... xn,yn

我正在尝试提取作为坐标的每个单独元素,然后将它们保存为文件,作为一个可以轻松阅读的精心描述的协定对。或者保存它们会有什么好处,所以我可以在excel e.t.c中绘制一些东西(作为x和y值的列)。

我的原始矢量大小为31,最初构造为

vector<vector<Point> > myvector( previous vector.size() );

4 个答案:

答案 0 :(得分:3)

在for循环中使用std::vector<std::vector<Point>>::const_iterator来迭代坐标列表的所有元素。

答案 1 :(得分:3)

在C ++中写入Excel文件很简单。你可以这样做。

      #include<iostream>
      #include<fstream>
      #include<vector>

      using namespace std;

      vector<Point> myVec;

      void main()
      {
         ofstream fout("C:/output.xls");

         for(unsigned int i=0; i<myVec.Size(); i++)
         {
             int x = myVec[i].x;
             int y = myVec[i].y;

             fout<<x;      //Write value of x in first column

             fout<<"\t";   //Jump to next column

             fout<<y;      //Write value of y in next column

             fout<<endl;   //Jump to first column of next row
         }

         fout.close();
       }

使用Microsoft Excel打开输出文件时,可能会显示警告。你可以忽略它。

答案 2 :(得分:0)

您可以使用at[]运算符并迭代向量的元素。然后将每个文件保存到文件或Excel表格中。

答案 3 :(得分:0)

“提取”向量中的元素(一种可能的方式!):

std::vector<anObj> myVec;
//...fill the vector...
//get the elements:
for(int i = 0; i < myVec.length(); i++)
{
     int x = myVec.at(i).x;
     int y = myVec.at(i).y;
     //do something else
}

在C ++中使用Excel有点复杂。有关托管和非托管方式,请参阅examples