Point3f的访问元素

时间:2013-09-17 11:06:56

标签: opencv computer-vision

我有一个Point3f,我想将其标准化,例如除以最后一个(z)元素。

Point3f C_tmp;

我可以像这样打印出来,

cout << "C_tmp= " << C_tmp << endl;

但是,我不能只做

C_tmp=C_tmp/C_tmp[3];

我使用C ++接口。 我在文档中找不到有用的东西。 有什么想法吗?

编辑:矢量案例:

int i;
    for (i=begin; i<end; i++) {
    threeD=...[i]..;
    threeDVector.push_back(threeD);
    twoD.x= threeD.x / threeD.z;
    twoD.y= threeD.y / threeD.z;
    twoDVector.push_back(twoD);
}

1 个答案:

答案 0 :(得分:3)

Point3f包含字段xyz

Point3f threeD(2, 3, 4);
Point2f twoD(threeD.x / threeD.z, threeD.y / threeD.z);

您也可以(隐式)将Point3f转换为Vec3f并按照您的方式进行操作(远离,c ++使用基于0的数组):

...
Vec3f threeDVector = threeD;
threeDVector /= threeDVector[2];

最后,我认为探索此类结构功能的最佳方法只是读取opencv头文件(在本例中为opencv2/core/types.hpp