其代码实现是:
// Step 4. 亚像素插值, 使用最佳匹配点及其左右相邻点构成抛物线来得到最小sad的亚像素坐标
// 使用3点拟合抛物线的方式,用极小值代替之前计算的最优是差值
// \ / <- 由视差为14,15,16的相似度拟合的抛物线
// . .(16)
// .14 .(15) <- int/uchar最佳视差值
// .
// (14.5)<- 真实的视差值
// deltaR = 15.5 - 16 = -0.5
// 公式参考opencv sgbm源码中的亚像素插值公式
// 或论文<<On Building an Accurate Stereo Matching System on Graphics Hardware>> 公式7
const float dist1 = vDists[L+bestincR-1];
const float dist2 = vDists[L+bestincR];
const float dist3 = vDists[L+bestincR+1];
const float deltaR = (dist1-dist3)/(2.0f*(dist1+dist3-2.0f*dist2));
这里的deltaR 为 , 具体公式如下:
subpixel ineterpolation亚像素插值(二次曲线拟合视差值)![](https://img-blog.csdnimg.cn/a402c0201c6944a6bb41c94d767b61c2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmluU3Vf,size_20,color_FFFFFF,t_70,g_se,x_16)
这里的推导如下:
即 const float deltaR = (dist1-dist3)/(2.0f*(dist1+dist3-2.0f*dist2)); 中的deltaR 为上式中h为1时的