ELAS方法计算双目视差
由于需要用到高精度的双目视差算法,找到了这个算法,为了防止我自己忘记,把它的使用过程,特地记录在这里啦。如果对大家有帮助就更好啦,嘿嘿。。
ELAS是由Andreas Geiger于2010年提出的一种比较新颖的立体匹配算法,全称为《Efficient Large Scale Stereo Matching》。这种算法的优点是对于高分辨率的图像,能够兼顾较高的匹配速度和匹配精度,在许多公开的数据集中ELAS的平均匹配精度十分接近SGM,但是速度却比SGM更快。
ELAS算法的基本流程是:
(1) 对左右图像进行sobel滤波,生成sobel特征图;
(2) 基于sobel特征进行匹配,筛选出其中具有较高置信度的匹配点,作为"support points",即支持点;
(3) 对支持点构建Delaunay三角网格;
(4) 构建立体匹配的概率生成模型;
(5) 基于最大后验概率密度估计(MAP)进行稠密立体匹配,获取初始视差图;
(6) 视差后处理:无效孔洞插值、(自适应)中值滤波、连通域噪声剔除、左右一致性检验。
下面是我具体的使用过程:
该算法的代码下载地址为:ELAS下载地址
下载好后,可以利用matlab和vs联合编程,也可直接利用VS运行。
采用VS运行过程如下:
- 我使用的是VS2019,选择打开本地文件,选择文件中由CMakeLists.txt文件的根目录,进行添加:
2.加载成功后,选择main.cpp文件运行:
我在运行过程中,遇到了如下问题: