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;
}
[Rodrigues] (https://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga61585db663d9da06b68e70cfbf6a1eac) – Miki
ich es überprüft, aber es gibt einige Werte, was ich will, ist der Winkel in Grad gedreht – Yomal