Estereo是一个开源的双目或者三目立体视觉重建程序,可以在这个地址下载https://sourceforge.net/project/stats/detail.php?group_id=126733&ugn=estereo&type=prdownload 编译需要安装vc.net和directx9.0 sdk,编译时可能需要修改几处地方 1.很多显卡不支持硬件VB,所以修改这里
hr
=
m_pD3D
->
CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING,
//
D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE,
&
m_d3dpp,
&
m_pD3DDevice);
2.有些电脑不能显示三维重建结果,需要修改这里将这些代码移出OnInitdialog
CWnd
*
pParent
=
GetParent(); CRect rcParent; pParent
->
GetWindowRect(
&
rcParent); MoveWindow(
&
rcParent); C3DWindow
*
p3DWindow
=
(C3DWindow
*
)GetDlgItem(IDC_3D_CONTROL);
if
(p3DWindow)
...
{ CRect rcControl; GetClientRect( & rcControl); rcControl.DeflateRect( 10 , 10 , 10 , 10 ); p3DWindow -> MoveWindow( & rcControl); if (((CButton * )GetDlgItem(IDC_CHECK_INITPOS)) -> GetCheck()) p3DWindow -> SetRegistryKey( " 3D Reconstruction " ); // arcball params should be kept separate p3DWindow -> Start( false ); p3DWindow -> CreateVB(m_nPoints,m_pX,m_pY,m_pZ,m_pC,m_pS); }
可以自己加上一个按钮,将这些代码加入按钮的响应函数中