python 中 cv2.StereoBM_create(1,2) 参数的含义

python opencv 官方教程中 45章立体图像中的深度地图提到了构建深度图的函数 StereoBM_create。代码如下:

import numpy as np
import cv2
from matplotlib import pyplot as plt
imgL = cv2.imread('tsukuba_l.png',0)
imgR = cv2.imread('tsukuba_r.png',0)
stereo = cv2.createStereoBM(numDisparities=16, blockSize=15)
disparity = stereo.compute(imgL,imgR)
plt.imshow(disparity,'gray')
plt.show()

这里会报错,把 cv2.createStereoBM 修改为 cv2.StereoBM_create,正确代码如下:


import cv2
from matplotlib import pyplot as plt
imgL = cv2.imread('23.jpg',0)
imgR = cv2.imread('24.jpg',0)
stereo = cv2.StereoBM_create(numDisparities=16, blockSize=11)
disparity = stereo.compute(imgL,imgR)
plt.imshow(disparity,'gray')
plt.show()

stereo = cv2.StereoBM_create(numDisparities=16, blockSize=11)

numDisparities:

即最大视差值与最小视差值之差, 窗口大小必须是16的整数倍,int 型

blockSize:

匹配的块大小。它必须是> = 1的奇数。通常情况下,它应该在3--11的范围内。这里设置为大于11也可以,但必须为奇数。

 

 

 

 

你可能感兴趣的:(python 中 cv2.StereoBM_create(1,2) 参数的含义)