Мне нужно вычислить глубину 2D точек из стереоизображений.Но странно, что когда я вычисляю его, на расстоянии он ошибается (это не должно быть) (глубина вычислений в порядке на уровне 40 см, а уровень шума начинается с 60 см - выше ожидаемого значения), тогда как моя базовая линия между камерами составляет 6 см.).
Я нашел разные способы вычисления глубины благодаря стереозахвату, почему?
1) z = (baseline * focal) / (disparity)
2) z = (baseline * focal) / (disparity + doffs)
3) z = (baseline * focal) / (disparity * p)
Где:
baseline = 60mm
doffs is c_x1-c_x0 (the difference between pixel centers of both images)
p is the pixel constant
Полагаю, 1-йчаще используется, чем 2-й, потому что в большинстве случаев doffs равен 0, но как насчет 3-го?Как я могу получить значение этой постоянной пикселя (иногда называемой размером пикселя)?Я не нашел никакой информации об этом ...
Я мог бы попробовать с 1-ой и 2-ой формулой, используя фокусное значение от моей матрицы камеры (полученной после калибровки стерео; интересный факт: я получилнемного другое значение для левого и правого глаза: 2,13 и 2,10).Я также попробовал фокусное значение, вычисленное благодаря несоответствию, полученному на известном расстоянии (на 42 см, у меня несоответствие = 33): f = (z * (несоответствие + смещения)) / baseline
Но со всеми попыткамиэто работало, когда моя камера <= 40 см от цели, и превышала ожидаемую глубину, когда камера 60 см + далеко ... </p>
Я полностью заморожен :( Большое спасибо за вашу помощь!
Тибо