10

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]这个参数。

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

查看全部
qq_41544501
lyf_
2019/04/10 16:29
  • python
  • 点赞
  • 收藏
  • 回答
    私信

1个回复