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