我有一个非常容易(也许是愚蠢的)问题。我有以下代码用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].id
,Markers[0].Tvec
,Markers[0].Rvec
我可以提取id,平移和旋转矩阵,但我无法找到获取像素值的方法。有人可以帮我这个吗?
答案 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].x
和Markers[0][0].y
,您可以获得左上角的x坐标和y坐标。