我有一对水平对齐的立体相机,它们是使用图像的全尺寸进行校准的。
我通过调用 cv2.initUn DistorifyMap 来获取每个摄像机的地图进行纠正,然后调用 cv2.remap
使用全尺寸图像时,如下所示:
map1, map2 = cv2.initUndistortRectifyMap(camera_matrix_1, dist_coeffs_1, R1, P1, (w, h), cv2.CV_16SC2)
map3, map4 = cv2.initUndistortRectifyMap(camera_matrix_2, dist_coeffs_2, R2, P2, (w, h), cv2.CV_16SC2)
rectified1 = cv2.remap(img1, map1, map2, cv2.INTER_LINEAR)
rectified2 = cv2.remap(img2, map3, map4, cv2.INTER_LINEAR)
其中参数为cv2.initUndistortRectifyMap
的输出是cv2.stereoCalibrate
and cv2.stereoRectify
然而,为了提高处理速度,图像在处理时将被裁剪(并可能被合并),然后才能进行校正。这意味着校正过程无法使用图像的完整尺寸。
在完成校正之前,需要更改哪些内容才能使代码能够处理图像的裁剪(和合并)?