实现效果:http://v.youku.com/v_show/id_XMTU2Mzk0NjU3Ng==.html如何在你的电脑上运行这个程序?1,它需要cvblobslib这一个opencv的扩展库来实现检测物体与给物体画框的功能,具体安装信息请见:http://dsynflo.blogspot.com/2010/02/cvblobskib-with-opencv-installation.html,当你配置好cvblobslib之后,你可以用这一的程序进行测试:http://dl.dropbox.com/u/110310945/Blobs%20test.rar2,视频中两个摄像头之间的距离是6cm,你可以根据你摄像头的型号,来选择合适的距离来达到最好的效果。
3,在进行测距之前,首先需要对摄像头进行标定,那么如何标定呢?在stdafx.h中把"#defineCALIBRATION0"改成“#defineCALIBRATION1”表示进行标定,标定之后,你就可以在工程目录下的"CalibFile"文件夹中得到标定信息的文件。
如果标定效果还不错,你就可以吧"#defineCALIBRATION"改成0,以后就不需要再标定,直接使用上一次的标定信息。
你还需要把"#defineANALYSIS_MODE1"这行代码放到stdafx.h中。
4,视频中使用的是10*7的棋牌格,共摄录40帧来计算摄像头的各种参数,如果你像使用其他棋盘格,可以在"StereoFunctions.cpp"文件中修改相应参数。
5,如果你无法打开摄像头,可以在"StereoGrabber.cpp"文件中修改代码“cvCaptureFromCAM(index)”中index的值。
6,Aboutcomputingdistance:itinterpolatestherelationshipbetweendepth-valueandreal-distancetothirddegreepolynomial.Soiusedexcelfile"interpolation"forinterpolationtofindk1tok4,youshouldfindyourownvalueoftheseparameters.7,你可以通过调整控制窗口中各个参数的滑块,从而来得到更好的视差图。
8,在目录下的”distance“文件夹中,有计算距离信息的matlab代码。
9,如果你想了解基本的理论,可以看一下这个文档和代码(视频里的代码其实就是根据这个代码改的):http://scholar.lib.vt.edu/theses/available/etd-12232009-222118/unrestricted/Short_NJ_T_2009.pdf视频中环境:vs2008,opencv2.1
1