У меня есть пара горизонтально выровненных стереокамер, которые были откалиброваны с использованием полного размера изображений.
Я исправляюсь, вызывая cv2.initUndistortRectifyMap, чтобы получить карту для каждой камеры, а затем 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
и cv2.stereoRectify
Однако для повышения скорости обработки изображения будут обрезаны (и потенциально могут быть скопированы) во время обработки, прежде чем их можно будет исправить.Это означает, что процесс исправления не может использовать полный размер изображения.
Что необходимо изменить, чтобы заставить код работать с кадрированием (и объединением) изображений перед выпрямлениемсделано?