所以我试图使用 CV2.StereoSGBM_create 在凉亭模拟中获得视差图。并使用 WLS 过滤器处理视差。但是,我的 StereoSGBM 地图似乎偶尔会出现失真问题。这是正常的图像:
对于 SGBM,我的代码是:
stereoLeft = cv2.StereoSGBM_create(
minDisparity = 0,
numDisparities = 16,
blockSize = 9,
uniquenessRatio = 50,
speckleRange = 1,
speckleWindowSize = 190,
disp12MaxDiff = 0,
P1 = 91,
P2 = 289
)
left_disp = stereoLeft.compute(grayLeft,grayRight)
norm_image = cv2.normalize(left_disp, None, alpha = 0, beta = 1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)
cv2.imshow("SGBM", norm_image)
cv2.imshow("SGBM", norm_image)
cv2.waitKey(1)
由于 WLS 过滤图像是从 SGBM 生成的,我认为问题在于 SGBM 而不是 WLS 过滤图像。我尝试修改 SGBM 的参数,但没有帮助。任何帮助将不胜感激,谢谢!