如何访问矢量值std :: vector <cv :: =“”point2f =“”> pto </cv>

时间:2015-03-06 04:13:16

标签: c++ opencv std stdvector

如何访问矢量值

std :: vector <cv :: Point2f> pto

进入单独的向量x和y

std :: vector <float> x;

已经尝试了几种方法:

x (i) = pto.at <cv :: float> (i) .pt.x

但没有效果

2 个答案:

答案 0 :(得分:1)

当我需要从像你自己的数组中分别提取X和Y值时,我这样做了:

std::vector<cv::Point2f> corners;
//stuff

cornersSize = corners.size();
for(int k=0; k<cornersSize; k++){          //goes through all cv::Point2f in the vector
                float x = corners[k].x;   //first value
                float y = corners[k].y;   //second value
                //stuff
}

文档包含所有内容 - http://docs.opencv.org/modules/core/doc/basic_structures.html

答案 1 :(得分:0)

您可以使用atoperator[]访问std::vector中的值:

std :: vector <float> x (n); // Initializes `x` to hold `n` values.
x.at (i) = pto.at (i) .x;

这会将xPoint2f的{​​{1}}组件分配到i的索引pto,以i向量中的x索引。< / p>