立体匹配

来源:互联网 发布:win8.1怎么优化才流畅 编辑:程序博客网 时间:2024/06/09 22:48

    啦啦啦啦啦啦,我来更博啦!!!今天终于又对立体匹配和其算法ASW又有了更深的理解,感谢师姐的开导微笑本篇文章采用超级通俗的说话来解释很多初学者疑问的概念

  1. 怎么去通俗的理解立体匹配中的概念呢?通俗地说,我们的两只眼睛就是两台摄像机,在眼前的电脑显示屏上选定某个点作为我们的目标点。好的,闭上左眼,用右眼直视前方(顺便记得观察你的目标点的位置),然后,下一步,闭上右眼,睁开左眼直视前方(依然记得观察目标点的位置)。在脑海中回想你刚才所看见的两副图像,回想和比较目标点分别在两副图像中的位置,你会发现,目标点相对于右眼中的图像(后称右图)和左眼中的图像(后称左图)是不一致的,存在偏差。那么两只眼睛是处于同一水平线,即为立体匹配中的baseline概念。那么视差呢?目标点相对于两只眼睛的夹角,这个夹角就是视差。视差可以带给我们目标点距离我们多远的距离,当目标点距离相机越近,那视差越大,反之当目标点距离相机越远,视差越小。
  2. 那么从视差图中,可以知道什么信息呢?视差图中颜色深浅度不一致,那么这意味着什么呢?在视差图中,颜色越浅的地方,说明其距离相机越近,反之,颜色越深的地方距离相机越远。那么会存在一种情况,盲区呢?盲区是什么呢?在左图中最左边处的信息,在右图中是不存在的;反之,在右图中最右边处的信息,在左图中是不存在的,所以这种区域,在我的理解下,我把它叫做盲区。那么盲区在视差图的表现就是——黑色。
  3. 那么当给定一张左图,怎么在右图中找到对应的点呢?在左图选取一个目标点x作为示例,获取该目标点x在该图像中的几何位置,然后在右图中找到相同几何位置的点y,比较点x和点y处的像素信息,若一致,则为对应点,停止查找;反之,当不一致时,在同一水平线上,将点y向左做像素平移,获取点y1,然后再将该点和点x做比较,依次循环,直到移动距离到达最大致d=maxd。
  4. 怎么判别两个像素点的信息是否一致呢?从d=0开始移动,直到d=maxd时,像素点共移动了maxd+1次,每一次都会计算一个cost,选取具有最小的cost的点作为对应点即可。
  • 此外,自适应权值的立体匹配算法ASW现已经通过代码实现得到最初的结果,但是需要优化一下,后期优化完成过后我会将优化的结果图贴出,供朋友们参考。
  • 如有疑问,请留言;如文中有错误的观点,请留言指正,感谢吐舌头