【发布时间】:2018-10-14 16:55:21
【问题描述】:
我想使用 SAD 算法计算视差图,当我运行代码时,我收到错误消息: 返回 stereo.compute(left_image, right_image).astype(np.float32) / 16.0 cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\calib3d\src\stereosgbm.cpp:2156: error: (-215:Assertion failed) left.size() == right .size() && left.type() == right.type() && left.depth() == CV_8U in function 'cv::StereoSGBMImpl::compute'
我的代码是:
left_image = cv2.imread('left.jpg')
right_image = cv2.imread('right.jpg')
def calc_disparity(left_image, right_image):
window_size = 3
min_disp = 1
num_disp = 16
stereo = cv2.StereoSGBM_create(
minDisparity=min_disp,
numDisparities=num_disp,
blockSize = 5,
# SADWindowSize=window_size,
uniquenessRatio=10,
speckleWindowSize=100,
speckleRange=32,
disp12MaxDiff=1,
P1=8*3*window_size**2,
P2=32*3*window_size**2,
# fullDP=False
)
return stereo.compute(left_image, right_image).astype(np.float32) / 16.0
【问题讨论】: