2017-11-09 49 views
0

私はロボットの位置を得るためにアルコマーカーを使用しています。 estimatePoseSingleMarkersからポーズを取得した後、私は与えられたマーカーのrvecsとtvecsを取得します。これにより、どのようにして各軸についてマーカーの回転角度を得ることができます。OpenCV rvecsから回転角度を計算する方法

iがカメラに対してその軸

while(true) 
{ 
    vector< vector<Point2f>> corners; //All the Marker corners 
    vector<int> ids; 

    cap >> frame; 
    cvtColor(frame, gray, CV_BGR2GRAY); 

    aruco::detectMarkers(gray, dictionary, corners, ids); 
    aruco::drawDetectedMarkers(frame,corners,ids); 
    aruco::estimatePoseSingleMarkers(corners, arucoMarkerLength, cameraMatrix, distanceCoefficients, rvecs, tvecs); 

    for(int i = 0; i < ids.size(); i++) 
    { 
     aruco::drawAxis(frame, cameraMatrix, distanceCoefficients, rvecs[i], tvecs[i], 0.1f); 
    } 

    imshow("Markers", frame); 
    int key = waitKey(10); 
    if((char)key == 'q') 
     break; 
} 
+0

[ロドリゲス](https://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga61585db663d9da06b68e70cfbf6a1eac) – Miki

+0

私はそれを確認したが、それは私が欲しいものいくつかの値を与えることは度に回転角度であり、 – Yomal

答えて

0

と共にarucoマーカーをマーカーの回転を検出して描画するために以下のコードを使用する(第1回転ベクトルから回転行列を取ることによって得られましたrvec)を計算し、オイラー角を取る。 Converting Rotation matrix to Eurler angles are given here

関連する問題