Eu estou trabalhando na reconstrução de profundidade a partir do mapa de disparidade. Eu uso o OpenCV para calibrar minha câmera estéreo e, em seguida, undistort e retificar as imagens. Eu uso o LibELAS para calcular o mapa de disparidade.
Minha pergunta é: De acordo com o documento OpenCV (https://docs.opencv.org/3.1.0/dd/d53/tutorial_py_depthmap.html), a profundidade é calculada por depth = Baseline*focal_length/disparity
. Mas de acordo com o conjunto de dados middlebury (http://vision.middlebury.edu/stereo/data/scenes2014/), a profundidade é calculada por depth = baseline * focal_length / (disparity + doffs)
. O "doffs" é "x-diferença de pontos principais, doffs = cx1 - cx0".
O que os "falsos" significam? Como posso obter os "doffs" da calibração do OpenCV?
Respostas:
0 para resposta № 1O OpenCV-Calibration oferece matrizes intrínsecas para as duas câmeras. Estas são 3x3 Matrices com o seguinte estilo: (de doc)
fx 0 cx
0 fy cy
0 0 1
cx
e cy
são os coordenadores do seu ponto de princípio. De lá você pode calcular doffs
como afirmado por você. Com câmeras ideais, esses parâmetros são o centro da imagem. Mas nas câmeras reais eles diferem em alguns pixels.