小编Fei*_*ips的帖子

当相机之间的角度太大时,OpenCV 立体图像校正无法正常工作

我想收集位于两个摄像机焦点处的身体的高度数据,这就是我的立体声设置的样子:

在此输入图像描述

当我使用标准 cv2 函数计算图像的校正版本时,它看起来非常糟糕。当我对相机并行使用类似的设置时,它起作用了。

我计算了外线,它们似乎是正确的:

在此输入图像描述

然而,校正后的图像却不是(下图是原始图像): 在此输入图像描述

这是我使用的代码,大部分是从 openCV 教程复制的

http://www.dmi.unict.it/~furnari/teaching/CV1617/lab1/

3d/2d 点和矩阵之前使用以下方法计算

cv2.calibrateCamera()
Run Code Online (Sandbox Code Playgroud)

校准和校正过程

retval, _, _, _, _, R, T, E, F = cv2.stereoCalibrate(imager._3d_points, _2d_points_L,_2d_points_R, mtxL, distL, mtxR, distR, (img.shape[1], img.shape[0])

R1, R2, P1, P2, Q, _, _ = cv2.stereoRectify(mtxL, distL, mtxR, distR, (img.shape[1], img.shape[0]), R, T, )

map1_x, map1_y = cv2.initUndistortRectifyMap(imager.mtxL, imager.distL, R1, P1, (imLeft.shape[1], imLeft.shape[0]), cv2.CV_32FC1)
map2_x, map2_y = cv2.initUndistortRectifyMap(imager.mtxR, imager.distR, R2, P2, (imLeft.shape[1], imLeft.shape[0]), cv2.CV_32FC1)

imgL = cv2.remap(imLeft, map1_x, map1_y , cv2.INTER_CUBIC)
imgR = cv2.remap(imRight, map2_x, …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision

3
推荐指数
1
解决办法
2736
查看次数

标签 统计

computer-vision ×1

opencv ×1

python ×1