双目三维重建-3立体矫正

什么叫做立体矫正

我理解就是将两个相机的画面进行一系列的矫正,最后的结果就是确保空间中的同一个点在左右相机相机的图片中位于同一行,也就是说空间中的一个点,在左相机的图片中是在90行,那么在右相机中也需要是90行。

这个是有理论支撑的,基于双目系统中的极线约束,有兴趣可以向AI了解一下。

上图所示的左右相机两张图片在经过立体矫正之后,对应点的像素是在同一行的;

立体矫正之后图像边缘会存在些许黑边。

如何实现立体矫正

直接上代码:

cv2.stereoRectify这个函数提供了立体矫正的功能;

先看输入的参数:

现在看名字已经非常明确了

这四个变量一眼看过去就是左相机的内参矩阵和畸变系数,右相机的内参矩阵和畸变系数;

下面三个参数是图像的尺寸,左右相机坐标系之间的RT矩阵转换关系。

这个参数比较重要,它是一个控制立体矫正方式的一个参数;

一般可以采用cv2.CALIB_ZERO_DISPARITY这个值,它可以确保两个相机光心那个点投影到图片上的像素点坐标一致;

说人话就是假如两个相机成夹角放置,并且基线距离是10mm,根据像素分辨率0.01来说,基线距离就是1000像素,那么假设无穷远处的一个点(都应该投影到两个相机的光轴上),在左相机的投影X坐标是500,那么在右相机的投影X坐标一定是1500,因为加上了基线的像素距离,这是立体矫正之后的。

拿一对标定板的图像来测试立体矫正

矫正之前

矫正之后

可以看到矫正之后,对应点都处于同一行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄晓魚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值