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);
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);
}
可以自己加上一个按钮,将这些代码加入按钮的响应函数中