我正在尝试计算 aruco 标记和相机之间的精确(3 厘米错误率是可以接受的)距离。我使用 python、opencv 和 aruco。我可以检测到它们(标记侧为 0.023 米,即 2.3 厘米)但我无法解释距离,因为对于 40 厘米的距离,平移向量的范数为 1 米。我对此很困惑。任何人都可以帮忙吗?完整代码(抱歉,没有很好地记录):
import numpy as np
import cv2
import cv2.aruco as aruco
import glob
import argparse
import math
# Marker id infos. Global to access everywhere. It is unnecessary to change it to local.
firstMarkerID = None
secondMarkerID = None
cap = cv2.VideoCapture(0)
image_width = 0
image_height = 0
#hyper parameters
distanceBetweenTwoMarkers = 0.0245 # in meters, 2.45 cm
oneSideOfTheMarker = 0.023 # in meters, 2.3 cm …Run Code Online (Sandbox Code Playgroud)