双目视觉之 SGBM 各个函数的参数的介绍,淡定的CrazyDog
cv::StereoSGBM sgbm; sgbm.preFilterCap = 63; int SADWindowSize=11; int cn = 1; sgbm.SADWindowSize = SADWindowSize > 0 ? SADWindowSize : 3; sgbm.P1 = 4*cn*sgbm.SADWindowSize*sgbm.SADWindowSize; sgbm.P2 = 32*cn*sgbm.SADWindowSize*sgbm.SADWindowSize; sgbm.minDisparity = 0; sgbm.numberOfDisparities = 32; sgbm.uniquenessRatio = 10; sgbm.speckleWindowSize = 100; sgbm.speckleRange = 32; sgbm.disp12MaxDiff = 1; sgbm(left , right , left_disp_); sgbm(right, left , right_disp_);
下面我简要介绍一下各个参数的意义
minDisparity -最小的是视差,一般设置为0
numDisparities 最大的视差,这个需要自己去定,这个数值比0大,而且要被16整除, 比如32 64
SADWindowSize 滑动窗口的大小,必须要大于1,一般取在3-11之间
P1 惩罚系数,用于控制图像的平滑,具体需要看这个函数的算法,很多博客有介绍P1和P2的惩罚系数
P2 惩罚系数
disp1MaxDiff 视差图的像素点检查,设置为1
uniquenessRatio 最好的代价方程值“赢了”第二好的代价方程值的概率,通常设置为5-15之间效果达到最佳
speckleWindowSize 针对散斑滤波的窗口大小,如果设置为0则不允许散斑滤波,否则设置为50-200之间
speckleRange- 相邻像素点的视差值浮动范围,通常设置为1-2就好了,这个系数会被乘以16输入到程序中
fullDP 如果是尺寸比较大的图片,这里设置为true,否则设置为false
posted on 2015-12-18 15:21 淡定的CrazyDog 阅读(4232) 评论(0) 编辑 收藏 举报