0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在OPencv中采用的是Bouguet的极线校正的算法

Dbwd_Imgtec 来源:未知 作者:李倩 2018-06-29 11:13 次阅读

在双目视觉中,我们对相机进行标定和校正,最终目的是使得两个相机的光轴完全平行,这样才能够继续后续的深度计算,三维重建。这样的校正在OPencv中采用的是Bouguet的极线校正的算法

校正前的左右相机的光心并不是平行的,两个光心的连线就叫基线(主镜头中心的连线),像平面与基线的交点就是极点,像点与极点所在的直线就是极线,左右极线与基线构成的平面就是空间点对应的极平面。

校正后,极点在无穷远处,两个相机的光轴平行。像点在左右图像上的高度一致。这也就是极线校正的目标。校正后做后续的立体匹配时,只需在同一行上搜索左右像平面的匹配点即可,能使效率大大提高。

Bouguet的方法是一种标定立体矫正方法,需要实现对左右相机进行标定,是将OPencv求解出来的旋转和平移矩阵分解成左右相机各旋转一半的旋转和平移矩阵R1,T1与R2,T2。分解的原则是使得,左右图像重投影造成的畸变最小,左右视图的共同面积最大。

1、将右图像平面相对于左图像平面的旋转矩阵分解成两个矩阵Rl和Rr,叫做左右相机的合成旋转矩阵。将左右相机各旋转一半,使得左右相机的光轴平行。此时左右相机的成像面达到平行,但是基线与成像平面不平行(行不对准)。

此时两个矩阵满足以下关系,通过这个关系可以看出来rl和rr是正交阵

2、构造变换矩阵Rrect使得基线与成像平面平行(行对准)。构造的方法是通过右相机相对于左相机的偏移矩阵T完成的。

(1) 首先先创建一个由极点el方向开始的旋转矩阵,令主点(cx,cy)为左图像原点,则极点el的方向就是相机投影中心之间的平移向量方向.

(2) e2方向与主光轴方向正交,沿图像方向,与e1垂直,则知e2方向可通过e1与主光轴方向的叉积并归一化获得。

(3) 获取了e1与e2后,e3与e1和e2正交,e3自然就是他们两个的叉积:

Rrect如下:

(4) 通过合成旋转矩阵与变换矩阵相乘获得左右相机的整体旋转矩阵。左右相机坐标系乘以各自的整体旋转矩阵就可使得左右相机的主光轴平行,且像平面与基线平行。

3. 通过上述的两个整体旋转矩阵,就能够得到理想的平行配置的双目立体系图像。校正后根据需要对图像进行裁剪,需重新选择一个图像中心,和图像边缘从而让左、右叠加部分最大。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像
    +关注

    关注

    2

    文章

    1083

    浏览量

    40414
  • 矩阵
    +关注

    关注

    0

    文章

    422

    浏览量

    34497
  • OpenCV
    +关注

    关注

    30

    文章

    628

    浏览量

    41258

原文标题:双目图像标定后矫正解析

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于QT+OpenCv的目标跟踪算法实现

    目标跟踪算法作为一种有着非常广泛的应用的算法航空航天、智能交通、智能设备等领域有着非常广泛的应用。本系列博客将教大家410c开发板上基于linux操作系统环境,
    发表于 09-21 10:42

    如何使用SDK独立模式下的OpenCV应用程序

    嗨,大家好,我是新手SDK用户。我使用vivado hls来合成一个简单的图像处理算法,并构建了我现在使用sdk的硬件平台,我想使用sdk独立模式下使用opencv应用程序zynq
    发表于 05-04 17:09

    OpenCV自带组件HighGUI怎么使用?

    将介绍OpenCV自带组件HighGUI的简单使用。当我们测试算法,查看算法效果的时候,需要用到可视化,动态调参的界面,也可能需要监听鼠
    发表于 11-05 06:54

    OpenCV的BGR格式,libyuv对应的那个格式?OpenCV的RGB格式呢?

    OpenCV的BGR格式,libyuv对应的那个格式?OpenCV的RGB格式呢?
    发表于 09-19 06:00

    openCV的库自带了模板匹配算法吗?

    openCV的库自带了模板匹配算法
    发表于 10-10 06:48

    一种无相机标定的线校正新方法

    提出一种无相机标定的立体图像对的线校正新方法。该校正方法并不依赖基本矩阵F的精确求解,而是通过空间变换法分析校正前后图像点对应关系,依此分
    发表于 04-14 08:40 12次下载

    三目立体视觉外线校正及其FPGA实现方法

    三目立体视觉外线校正及其FPGA实现方法
    发表于 09-17 07:30 16次下载

    opencv 白平衡算法

    白平衡就是图片中最亮的部分为白色,最暗的部分为黑色,其余部分进行拉伸。下文将详细介绍OpenCV实现的灰度世界算法
    发表于 01-17 09:05 7773次阅读

    环视SAR成像处理的几何失真校正算法

    环视合成孔径雷达(SAR) 图像用于导弹精确末制导的景象匹配处理, 需要满足几何精度的要求。校正由雷达平台不规则运动和天线圆周扫描导致的图像几何失真, 是环视SAR 成像处理的关键步骤。文中
    的头像 发表于 03-13 09:07 6127次阅读
    环视SAR成像处理<b class='flag-5'>中</b>的几何失真<b class='flag-5'>校正</b><b class='flag-5'>算法</b>

    Vivado如何实现OpenCV设计

    观看视频,了解OpenCV库和其一些典型应用的使用,以及Zynq-7000 SoC的优点和如何实现OpenCV设计。同时您还能学习到如何在设计流程中使用HLS和视频库文件。本教程将
    的头像 发表于 11-20 06:46 3906次阅读

    使用Adaboost算法实现车牌检测OpenCV上实现的研究分析

    AdabtxⅪt是一个构建精确分类器的学习算法目标检测领域有着广泛的应用。OpenCV是Intel开源计算机视觉库。该文给出了OpenCV
    发表于 09-27 17:49 7次下载
    使用Adaboost<b class='flag-5'>算法</b>实现车牌检测<b class='flag-5'>在</b><b class='flag-5'>OpenCV</b>上实现的研究分析

    如何使用FPGA实现三目立体视觉外线校正的方法

    提出一种三目立体视觉外线校正的快速算法.3个摄像机呈直角三角形配置,且已知摄像机透视投影矩阵。根据校正基本约束确定
    发表于 04-01 10:27 12次下载
    如何使用FPGA实现三目立体视觉外<b class='flag-5'>极</b><b class='flag-5'>线</b><b class='flag-5'>校正</b>的方法

    基于OpenCV如何提取中心线

    如何提取二值对象的骨架,提取骨架的方法OpenCV的扩展模块,另外skimage包也支持图像的骨架提取。这里就分别基于OpenCV扩展模块与skimage包来完成骨架提取,得到上述
    的头像 发表于 04-26 13:51 3729次阅读

    OpenCV边缘模板匹配算法原理详解

    OpenCV自带的模板匹配算法,完全是像素基本的模板匹配,特别容易受到光照影响,光照稍微有所不同,该方法就会歇菜了!搞得很多OpenCV初学者刚学习到该方法时候很开心,一用该方法马上
    的头像 发表于 12-07 10:56 1326次阅读
    <b class='flag-5'>OpenCV</b>边缘模板匹配<b class='flag-5'>算法</b>原理详解

    opencv图像识别有什么算法

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,提供了大量的图像处理和计算机视觉相关的算法。以下是一些常见的OpenCV
    的头像 发表于 07-16 10:40 822次阅读