基于matlab双目工具箱的极线矫正

作者在进行opencv双目标定过程中遇到使用matlab标定参数进行极线矫正时效果不理想的问题。通过启动matlab的双目标定工具箱,进行图片添加和标定,然后导出参数进行畸变校正和极线矫正。在代码示例中,矫正过程看似正常,但实际效果不尽如人意,作者寻求可能的原因和解决方案。
摘要由CSDN通过智能技术生成


前言

  在进行opencv进行双目标定的时候,使用matlab标定工具箱标定的参数进行极线矫正的时候总是出问题,矫正效果不好,排查半天原因也找不到,如果有大佬知道可以指点一下。
  matlab我上传的相机1是左相机,2是右相机,参数用的是标定的结果,这个左图是左相机第一张,右图是右相机第一张,有大佬知道为什么吗?
在这里插入图片描述

1.打开matlab进行双目标定

  启动双目标定工具箱

stereoCameraCalibrator

添加左目和右目照片,选择coefficients和tangential distortion ,点击calibrate在这里插入图片描述

然后选择export camera parameters,点击确定

在这里插入图片描述
在主界面上就可以看到输出
在这里插入图片描述

2.极线矫正

  

% 读取左右图像
I1 = imread('left.png');
I2 = imread('right.png');

% 加载标定参数
load('stereoParams.mat'); #这俩如果是对话框,直接注释掉就可以了

% 去除左右目图像畸变
[left_img_undistorted, ~] = undistortImage(I1, stereoParams.CameraParameters1);
[right_img_undistorted, ~] = undistortImage(I2, stereoParams.CameraParameters2);

% 对左右图像进行极线矫正
[I1Rect,I2Rect] = rectifyStereoImages(left_img_undistorted,right_img_undistorted,stereoParams);

% 保存矫正后的图像
imwrite(I1Rect, 'left_rectified.png');
imwrite(I2Rect, 'right_rectified.png');

% 显示矫正后的图像并绘制水平等分线
imshowpair(I1Rect,I2Rect,'montage');
hold on;
for y = 50:50:size(I1Rect,1)
    plot([0,size(I1Rect,2)*2], [y,y], 'r');
end
hold off;

  这里极线矫正的效果感觉还是可以的。
在这里插入图片描述


评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小张Tt

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

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

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

打赏作者

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

抵扣说明:

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

余额充值