After a lot more experimentation and digging around, it turns out that the Q matrix provided by cv2.fisheye.stereoRectify()
is, basically, wrong. I’m not sure what’s different about my workflow that causes this issue (when presumably other people are able to obtain valid Q matrices?) but my issue was resolved by using a Q matrix of the following form:
Q = np.float32([[1, 0, 0, 0],
[0, -1, 0, 0],
[0, 0, f, 0],
[0, 0, 0, 1]])
where f
is 1 / focal_length, but in this case just manually tuned to give good depth values.