2017-11-09 17 views
0

Ich benutze Aruco Marker, um den Standort eines Roboters zu erhalten. Nachdem ich die Pose von der SchätzungPoseSingleMarkers erhalten habe, erhalte ich die rvecs und tvecs für einen gegebenen Marker. Von diesem wie könnte ich den gedrehten Winkel des Markers um jede Achse erhalten.So berechnen Sie den gedrehten Winkel von OpenCV rvecs

i den nachfolgenden Code verwendet, zu erfassen und den aruco Marker zusammen mit seiner Achse zu zeichnen

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

[Rodrigues] (https://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga61585db663d9da06b68e70cfbf6a1eac) – Miki

+0

ich es überprüft, aber es gibt einige Werte, was ich will, ist der Winkel in Grad gedreht – Yomal

Antwort

Verwandte Themen