Насколько я понимаю, мы можем использовать следующую формулу, чтобы получить реальное расстояние от карты глубины. Фокусное расстояние пи-камеры в пикселях составляет 2571,4, а расстояние между двумя моими камерами - 0,065 м. поэтому, используя эту формулу на основе метода триангуляции,
Расстояние = (фокусное расстояние * расстояние между двумя камерами) / карта диспаратности.
Я также сгенерировал карту диспаратности со следующим кодом:
stereo = cv2.StereoBM_create(numDisparities=48, blockSize=25)
disparity = steeo.compute(rectified_pair[0], rectified_pair[1])
norm_image = cv2.normalize(disparity, None, alpha = 0, beta =1, norm_type=cv2.NORM_MINMAX, dtype=cv.CV_32F)
f = 2571.4
b = 0.065
distance = (b*f)/disparity
cv2.imshow(norm_image)
Я понимаю, что диапазон моего «несоответствия» начинается с -16. Я получаю отрицательные значения для обоих наборов кодов, и я не уверен, что это правильный метод для расчета расстояния. Кроме того, я откалибровал свои камеры. Спасибо!