在变量中插入值

时间:2018-02-02 19:16:45

标签: c++ aruco

我有一个非常容易(也许是愚蠢的)问题。我有以下代码用aruco库检测aruco标记:

MarkerDetector MDetector;
vector<Marker> Markers;

this->TheCameraParameters.readFromXMLFile(CAMERA_PARAM_FILE);
this->TheCameraParameters.resize(frame.size());
MDetector.detect(frame,Markers, this->TheCameraParameters, MARKER_SIZE);

此代码为我提供了一个由不同检测标记组成的向量(Markers)。如果我打印Markers,我会得到以下信息:

24=(304.631,14.2414) (358.085,12.8291) (358.957,69.6651) (306.197,71.0909) Txyz=0.0540816 -0.892379 2.30182 Rxyz=-2.99629 0.0430742 -0.0213533

但现在我想获得标记的像素值。使用Markers[0].idMarkers[0].TvecMarkers[0].Rvec我可以提取id,平移和旋转矩阵,但我无法找到获取像素值的方法。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

我在图书馆进行了密集搜索后找到了答案。

在以下输出中

24=(304.631,14.2414) (358.085,12.8291) (358.957,69.6651) (306.197,71.0909) Txyz=0.0540816 -0.892379 2.30182 Rxyz=-2.99629 0.0430742 -0.0213533

第一个元素(24)是标记的id。接下来的4个元素是4个角的像素坐标。使用Markers[0][0].xMarkers[0][0].y,您可以获得左上角的x坐标和y坐标。