Я хочу использовать ArUco , чтобы найти «пространственные координаты» маркера.
У меня проблемы с пониманием tvecs
и rvecs
. Я дошел до того, что tvecs
- это перевод, а rvecs
- для вращения. Но как они ориентированы, в каком порядке они написаны в коде или как их ориентировать?
Вот небольшой набросок установки. У меня есть камера (веб-камера ноутбука, только нарисованная для иллюстрации ориентации камеры) в положении X , Y , Z , камера ориентирована, что можно описать с углом a вокруг X , углом b вокруг Y , угол c вокруг Z (углы в рад).
Поэтому, если моя камера неподвижна, я буду делать различные снимки плат ChArUco и назначать алгоритму калибровки камеры tvecs_camerapos
( Z , Y , X ) и rvecs_camerapos
( c , b , a ). Я получаю камеру Matrix, distCoeffs
и tvecs_cameracalib
, rvecs_cameracalib
. t/rvecs_camerapos
и t/rvecs_cameracalib
отличаются, что я нахожу странным.
- Является ли эта номинация / порядок t / rvecs правильными?
- Должен ли я использовать
camerapos
или cameracalib
для оценки позы, если камера не двигается?
Я думаю, t/rvecs_cameracalib
ничтожно мал, потому что меня интересуют только внутренние параметры алгоритма калибровки камеры.
Теперь я хочу найти X , Y , Z положение маркера , я использую aruco.estimatePoseSingleMarkers
с t/rvecs_camerapos
и получить t/rvecs_markerpos
. tvecs_markerpos
не соответствуют моим ожидаемым значениям.
- Нужно ли преобразование
t/rvecs_markerpos
, чтобы найти X , Y , Z маркера?
- Где мое заблуждение?