基于OPENCV双目视觉的三维场景恢复
苦逼的钻研日子有一段时间了,回顾一下这些天做的事情,从中获得成就感,开启新旅程。
这些天在做《基于OPENCV双目视觉的三维场景恢复》,主要工作有:
1、双目标定、双目视差图的计算、三维点云的获取
2、三维点云的显示,以及图像像素点与三维坐标对应关系的展示工具
双目标定在本博客中已阐述多次,不赘述。不过在做双目标定的过程中发生了一件事,起初,我不知道标定板中每一个小方块的尺寸,但是我知道双相机基线的长度,于是我根据基线长度,计算出标定板中每一个小方块的尺寸为0.06767米(做过双目标定的人应该知道,这中间有一个比例关系),后来我自己拿个尺子去实际测量,是6.7厘米!这个准确度还是让我很惊讶的,于是不得不由衷佩服计算机视觉领域的研究者,他们揭示了可视世界的奥妙,并且不断将机器的智慧发挥到新高度!
双目视差图的计算与三维点云的获取我很费了一些功夫,以至于进度被拖延。这部分我直接用opencv的sample源码stereo_match,参考了北航的博士
chenyusiyuan 大牛的csdn文章,从中获得不少帮助。由于我做的没有什么创造性,这里晒晒效果图吧。
深度图
获得的三维点云效果图(opengl展示)
图像像素点与三维坐标对应关系这一个通过opencv的交互APi cvSetMouseCallback来做,鼠标在图片中点一下,得到它的对应3维坐标。
顺便推介几个小程序,蛮好玩的。
1、立体图像产生软件
2to3
通过照片和深度图,产生右视图,进而可以为以前的影片制作3D电影的效果啦
2、structure from motion
提供左右视图,产生3维
3、类似功能
感觉这些都很好玩 做图像还是很有乐趣的