python+opencv用SGBM得到的视差图怎么空洞填充?

在研究立体匹配,用python+opencv。 用的是middlebury测试集的第一张。
然后得到了视差图图片说明

import cv2 as cv
from matplotlib import pyplot as plt

img_L = cv.imread('/Users/lyf/Desktop/MiddEval3/testF/Australia/im0.png' , 0)
img_R = cv.imread('/Users/lyf/Desktop/MiddEval3/testF/Australia/im1.png' , 0)
tereo = cv.StereoSGBM_create(minDisparity=0, numDisparities=192, blockSize= 3,P1=72, P2= 288, disp12MaxDiff= 1, uniquenessRatio=1)
disparity = stereo.compute(img_L, img_R)
disparity = cv.normalize(disparity, disparity, alpha=0, beta=255, norm_type=cv.NORM_MINMAX, dtype=cv.CV_8U)
plt.imshow(disparity,'gray')
plt.show()

然后我看应该有个之后的空洞填充过程,看别人得到的图很平滑不是这么坑坑挖挖的
图片说明

然后我网上查了一下,好像是用
cv2.filterSpeckles()这个函数, 然后不知道怎么用这个,尤其是maxDiff =[,buf]这个参数。

请大神指教一下后续的空洞填充该怎么做

https://www.cnblogs.com/riddick/p/8318997.html

博主你好,我想知道你第一张图计算出的视差图是如何去掉左边的黑色边缘部分,像第二张图那样,非常急谢谢!