在研究立体匹配,用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]这个参数。
请大神指教一下后续的空洞填充该怎么做